В предыдущей статье Мы посмотрели как можно выбрать данные из базе данных. В данной статье мы научимся
писать данные в БД. Используя Yii2.
Исходники данного урока можно скачать тут. И таблицу SQL которая будет использоваться можно скачать тут.
Запись данных в БД (insert):
Как добавлять (сохранять) данные?
Чаще всего, для этой цели используется метод save. Так-же можем использовать метод Update. Но чаще всего используется метод save потому что он более универсален. С ним можно вставлять новые данные и обновлять данные. То-есть можем выполнять операцию Insert и операцию Update.
В зависимости от чего метод save может выполнять Insert либо Update запрос?
Это зависит от состояния объекта ActiveRecord:
- Если объект мы создаём с помощью оператора new, тогда будет выполняться SQL запрос Insert.
- А если-же мы объект получили с помощью запроса из базе данных, тогда будет выполняться операция Update.
Чтобы сохранять данные нужно, создать модель:
/models/TestForm.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php namespace app\models; use yii\db\ActiveRecord; // подключаем ActiveRecord потому что будем работать с базой данных class TestForm extends ActiveRecord { // добавляем метод tableName потому что у нас таблица называется не как модель public static function tableName() { return "posts"; } } ?> |
И контроллер которые будет работать с нашей моделью:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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->text = "Привет, классные статьи. Спасибо."; // и сохраним $model->save(); } } |
Метод save сам вызывает метод validate.
Чтобы отключить валидацию можно просто передать false:
1 |
$model->save(false); |
Так-же рекомендую пройти и курс Михаила Русакова по фреймворку Yii2.
Спасибо, все кратко и понятно
Пожалуйста.