Переопределить метод find через функцию в Модели?

Всем Добрый День !
Подключил вот это расширение: https://github.com/OmgDef/yii2-multilingual-behavior
В modules\catalog\models\Item.php - подключил поведение
Автор этого расширения просить, в модели переопределить метод find(), вот так
public static function find()
    {
        return new MultilingualQuery(get_called_class());
    }

Либо же в моем случае, чтобы выбрать все переводы нужно так сделать
public static function find()
    {
$q = new MultilingualQuery(get_called_class());
$q->multilingual();
return $q;
}

Затем если в контроллере сделать так:
$model = Item::findOne($id);
Все переводы моей записи подтягиваются.

Все это конечно хорошо, но переопределив метод find() таким образом в модели, у меня начали вылазить другие не нужные мне ошибки в других местах сайта где я тоже использую класс Item.
Вопрос, как это все организовать через некую функцию в классе Item, чтобы потом в контроллере, вот так допустим запись из БД доставать ?
$model = new Item;
$model = $model->findMultilingual($id);


Заранее спасибо !
  • Вопрос задан
  • 535 просмотров
Решения вопроса 1
@matperez
Вам нужно создать свой класс. Какой-нибудь ItemQuery. Наследовать его от yii\easyii\components\ActiveQuery и добавить туда трейт MultilingualTrait и его уже возвращать из Item::find(). И будет вам счатье.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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