1. Первым делом настраиваем подключение к Базе Данных
открываем фаил
/config/db.php
прописываем подключение
2. Создаем модель для нашей таблицы (название в единственном числе).
пример
Код:
<?php
namespace app\models;
use yii\db\ActiveRecord;
class Post extends ActiveRecord
{
}
в этом случае модель автоматически подключается к таблице Post
Если ваша таблица называется по другому,
то нужно указать это в моделе.
пример
Код:
<?php
namespace app\models;
use yii\db\ActiveRecord;
class Post extends ActiveRecord
{
public static function tableName()
{
return 'posts';
}
}
Далее работаем с контроллером.
Вывод всех данных.
$posts = Post::find()->all(); // SELECT * FROM `posts`
Вывод данных с сортировкой
$posts = Post::find()->orderBy([‘id’ => SORT_ASC])->all();
$posts = Post::find()->orderBy([‘id’ => SORT_DESC])->all();
По умолчанию дынные выводятся в объекте
Что-бы получать данные в массиве (рекомендуется для большого массива данных)
$posts = Post::find()->asArray()->all();
Получение данных с параметром
$posts = Post::find()->asArray()->where(‘parent=1’)->all();
$posts = Post::find()->asArray()->where([‘parent’ => 1])->all();
с оператором
$posts = Post::find()->asArray()->where([‘like’, ‘title’, ‘pp’])->all();
$posts = Post::find()->asArray()->where([‘<=’, ‘id’, ‘5’])->all();
с ограничением
$posts = Post::find()->asArray()->where(‘parent=1’)->limit(1)->all();
$posts = Post::find()->asArray()->where(‘parent=1’)->limit(1)->one();
со смещением
$posts = Post::find()->asArray()->where(‘parent=1’)->offset(3)->all();
$posts = Post::find()->asArray()->where(‘parent=1’)->offset(3)->one();
количество результатов
$posts = Post::find()->asArray()->where(‘parent=1’)->count();
выполнение запроса
$query = «SELECT * FROM posts WHERE title LIKE :search»;
$posts = Post::findBySql($query, [‘:search’ => ‘%pp%’])->all();
Сделать ключем массива значение столбца (например Id) и вывод нужных столбцов
$posts = Post::find()->select([‘title’, ‘id’])->indexBy(‘id’)->column();
Удаления одной отдельной строки данных
Код:
$customer = Customer::findOne(123);
$customer->delete();
Удаления всех или нескольких строк данных одновременно.
Код:
Customer::deleteAll(['parent_id' => 2]);