@mirvo

Как сделать выборку основываясь на leftJoin?

Извиняюсь, но вопрос исчерпан.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
maksim92
@maksim92 Куратор тега Yii
Нашел решение — пометь вопрос ответом!
Если у вас примерно такая модель поиска и вам это нужно запрограммировать в самой Search модели, то примерно так:
class GradeSearch extends Model
{
    ...
    public function search($params)
    {
        $query = Grade::find()->joinWith(['student'])
                    ->andWhere(['students.student_id' => 1])
                    ->andWhere(['grades.student_id' => 1]);

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 50,
            ],
        ]);
       }
....
}


Либо в фильтре. В модель надо добавить новую переменную:
public $studentId;
class GradeSearch extends Model
{
    public $studentId;
    ...
    public function search($params)
    {
        $query = Grade::find()->joinWith(['student']);

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 50,
            ],
        ]);
       }
      ...
       $query->andFilterWhere([
            'id' => $this->id,
            'students.student_id' => $this->studentId,
            'grades.student_id' => $this->studentId
        ]);
}


PS не совсем понял по вашему вопросу, поэтому примеры показал аналогичные. Работать нужно со своими данными.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы