/ / Yii przy użyciu metody CActiveRecord -> with () ze współdzielonymi nazwami kolumn - yii

Yii przy użyciu metody CActiveRecord -> with () ze wspólnymi nazwami kolumn - yii

Używam Yii CActiveRecord A -> z ("B") -> metoda findAll (), gdzie jedna z kolumn hte jest wspólna z A i B, a ta kolumna jest również częścią warunku.

Teraz problem polega na tym, że wykonuję gobłąd SQL, ponieważ mySQL nie wie, czy chcę odwołać się do A.column lub B.column. Przeglądałem wykonane zapytanie i wygląda na to, że tabela nazw yii jest wykonywana jako „t”, więc dopisałem nazwę „t” .column w warunku i wszystko działało dobrze.

Moje pytanie brzmi, czy ten rodzaj kodu jest odpowiedni tam, gdzie używam warunku jako

„CURDATE () <= date I t.removed =: usunięty AND ispublic = 1 AND isopen = 1 ”

podczas gdy nie odnoszę się do „t” w zapytaniu. Yii samodzielnie zmienia nazwę tabeli. Daj mi znać, jeśli wydaje się to być dobrą praktyką kodowania lub jeśli jest lepszy sposób na to.

dzięki.

Odpowiedzi:

1 dla odpowiedzi № 1

Gdy nie używasz „with ()”, możesz pisaćTwój warunek bez dołączania aliasu „t” z nazwą kolumny, ale gdy użyjesz „with ()” do znalezienia danych relacji, musisz dodać alias „t” z podstawowym warunkiem modelu. Jeśli ich nie ma wspólnej kolumny z relacjami, możesz uniknąć aliasu do modelu podstawowego.

Domyślne wartości Yii dodają alias do modelu podstawowego „t”, więc należy użyć „t” z nazwami kolumn modelu podstawowego.