Вход

Yii 2: Запрос в модели

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 /

4553 Views /

7 комментариев
Ilya Web developer
Author

«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»Martin Golding