@galithr

Как правильно организовать форму фильтр?

Есть ActiveRecord пользователей (User):
class User extends  \yii\db\ActiveRecord {

    public function rules(){
        return[
            [
                 'first_name',
                 'last_name',
                  'login'
            ],
            'string'
      ];
   }
}

На странице с списком пользователей есть форма фильтра, которая организована через \yii\base\Model.
class UserFilter extends \yii\base\Model {

    public $first_name;
	
    public $last_name;
}

Соответственно пользователь с помощью нее вводит данные и отправляет на сервер, а там уже происходит фильтрация. Собственно вопрос заключается в том где правильнее расположить метод фильтрации(формирующий запрос с условиями) в ActiveRecord например:
public static function SearchByFilter(UserFilter $filter) {
	return self::find()->where(['last_name' => $filter->last_name, 'first_name' => $filter->first_name])
}


или же в модели UserFilter , например:
public function Search(){
	return User::find()->where(['last_name' => $this->last_name, 'first_name' => $this->first_name])
}
  • Вопрос задан
  • 159 просмотров
Решения вопроса 2
bitver
@bitver
Чем стандартная реализация не угодила? Которая генерится через gii или есть в шаблонах.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Есть стандартное решение. UserSearch model унаследованная от модели User и ActiveRecord соответственно. Что у Вас за модель унаследованная от \yii\base\Model? Дайте код хотя бы. Не понятно с чем мы сравниваем?
Но если вообщем, то не вижу причин не использовать стандартные методы, которые можно сгенерить через gii.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы