В предыдущей статье Мы посмотрели как можно выбрать данные из базе данных. В данной статье мы научимся
писать данные в БД. Используя Yii2.
Исходники данного урока можно скачать тут. И таблицу SQL которая будет использоваться можно скачать тут.
Запись данных в БД (insert):
Как добавлять (сохранять) данные?
Чаще всего, для этой цели используется метод save. Так-же можем использовать метод Update. Но чаще всего используется метод save потому что он более универсален. С ним можно вставлять новые данные и обновлять данные. То-есть можем выполнять операцию Insert и операцию Update.
В зависимости от чего метод save может выполнять Insert либо Update запрос?
Это зависит от состояния объекта ActiveRecord:
- Если объект мы создаём с помощью оператора new, тогда будет выполняться SQL запрос Insert.
- А если-же мы объект получили с помощью запроса из базе данных, тогда будет выполняться операция Update.
Чтобы сохранять данные нужно, создать модель:
/models/TestForm.php
<?php
namespace app\models;
use yii\db\ActiveRecord; // подключаем ActiveRecord потому что будем работать с базой данных
class TestForm extends ActiveRecord {
// добавляем метод tableName потому что у нас таблица называется не как модель
public static function tableName()
{
return "posts";
}
}
?> И контроллер которые будет работать с нашей моделью:
<?php
namespace app\controllers;
use app\models\Category;
use Yii;
use app\models\TestForm; // подключаем нашу модель
class PostController extends AppController
{
public function actionIndex() {
$model = new TestForm(); //создаём объект
//теперь, будем писать данные в объекте
$model->name = "Иванов Иван";
$model->email = "ivan@gmail.com";
$model->text = "Привет, классные статьи. Спасибо.";
// и сохраним
$model->save();
}
} Метод save сам вызывает метод validate.
Чтобы отключить валидацию можно просто передать false:
$model->save(false);
Так-же рекомендую пройти и курс Михаила Русакова по фреймворку Yii2.
Спасибо, все кратко и понятно