Как переопределить свои методы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
asisdes
Сообщения: 202
Зарегистрирован: 2013.10.03, 15:54

Как переопределить свои методы

Сообщение asisdes »

Код: Выделить всё

        public function actions()
        {
            return [
                'index' => [
                    'class' => 'yii\rest\IndexAction',
                    'modelClass' => $this->modelClass,
                    'prepareDataProvider' => function () {
                        $searchModel = new \app\models\RealestateSearch();
                        return $searchModel->search(Yii::$app->request->queryParams);
                    },
                ],
                'view' => [
                    'class' => 'yii\rest\ViewAction',
                    'modelClass' => $this->modelClass,
                ],
            ];
        }
        
        
    public function actionIndex()
    {
        return new ActiveDataProvider([
            'query' => Realestate::find(),
        ]);
    }
Что вписать что бы он использовал Мой actionIndex подскажите плиз.
До этого по другому определял, но тогда поиск по get параметрам не работают
кто чем может подскажите

Код: Выделить всё

    public function actions() {

                $actions = parent::actions();

                $actions['index']['prepareDataProvider'] = [$this, 'actionIndex'];
                $actions['view']['findModel'] = [$this, 'actionView'];

                unset($actions['index']);
                unset($actions['view']);
                unset($actions['create']);
                unset($actions['delete']);
                unset($actions['update']);

            return $actions;
    }
    public function prepareDataProvider()
    {
        $searchModel = new \app\models\RealestateSearch();
        return $searchModel->search(\Yii::$app->request->queryParams);
    }

Изображение
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как переопределить свои методы

Сообщение ElisDN »

Код: Выделить всё

$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];
или уберите actionIndex().
asisdes
Сообщения: 202
Зарегистрирован: 2013.10.03, 15:54

Re: Как переопределить свои методы

Сообщение asisdes »

ElisDN писал(а):

Код: Выделить всё

$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];
или уберите actionIndex().
а можете подсказать, почему во втором методе, не работает функция public function prepareDataProvider().
т.е. если я отправляю с GET-запросом какой то параметр, например Realestate[city]=14 отбор не происходит.

похоже я сам index метод не правильно реализовал (((

Код: Выделить всё

public function actionIndex()
{
        return new ActiveDataProvider([
            'query' => Realestate::find(),
        ]);
} 
надо было проще

Код: Выделить всё

    public function actionIndex()
    {
        return $this->prepareDataProvider();
    }
Изображение
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как переопределить свои методы

Сообщение ElisDN »

asisdes писал(а):надо было проще
Нвдо вообще свой actionIndex убрать.
Ответить