Yii 2: Запрос в модели
Для реализации концепции mvc необходимо разделять вид и управляющие конструкции, причём необходимо помещать запросы к базе в модель. Сегодня мы разберём как создать запрос в модели yii2.
У нас есть модель Page, в которой мы делаем запрос к таблице page и достаём из неё все поля, после чего результат записываем в массив:
1 2 3 4 5 6 7 8 9 10 11 12 | class Pages extends ActiveRecord { // метод с именем таблицы public static function tableName() { return 'page'; } // метод с запросом к таблице page public function getData(){ return Pages::find()->asArray()->all(); } } |
В модели мы можем писать более сложные запросы:
1 2 3 4 5 6 7 8 | public function getData(){ $data = Yii::$app->db->createCommand('SELECT FROM page p LEFT JOIN category cat ON page.cat = cat.id WHERE cat.off = 0 AND page.off = 0 ORDER BY page.id')->queryAll(); return $data; } |
После чего в контроллере нам необходимо подключить нашу модель и вызвать метод getData:
1 2 3 4 5 | public function actionIndex() { $data = Pages::getData(); return $this->render('index', compact('data')); } |
4 апреля 2018 /
5080 Views /
7 комментариев