Połączenia najlepiej używać w Yii, tworząc Relations , w ten sposób nie będziesz musiał pisać skomplikowanych zapytań
Zacznij od dodania kluczy obcych do tabel sql (np. dodaj identyfikator pacjenta klucza obcego na krześle)
Następnie, jeśli zregenerujesz swój model, zobaczysz relacje dodane automatycznie (lub możesz ręcznie dodać relacje)
public function relations()
{
return array(
'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
);
}
A w modelu krzesła zobaczysz zależność
'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),
Zdefiniowanie samej relacji umożliwia dostęp do wartości w pytanym modelu jako $model->relationName, jeśli chcesz użyć kolumny w warunku „gdzie”, użyj następującego zapytania w funkcjach modelu
$patients=Patient::model()->findAll(array(
'condition' => "$field like '%$value%'",
'with'=>array('chairs'),
'select'=> "*",
));
Słowo kluczowe „with” jest ważne i może przyjmować tablicę relacji do uwzględnienia w zapytaniu. Warunek zapytania będzie miał zastosowanie do wszystkich uwzględnionych tabel. Możesz pominąć tutaj słowo kluczowe "z", jeśli nie chcesz wysyłać zapytania do pola z innej tabeli i potrzebujesz tylko połączonych danych wyjściowych.
Do krzeseł przydzielonych pacjentowi można dotrzeć przez
foreach($patients as $patient)print_r($patient->chairs);
Istnieją również inne podejścia , takie jak omówione tutaj
Aby lepiej poznać relacje, przejdź tutaj