day2の今日は、day1で定義したレコードを表すクラス(Entity, Model)を使って、Doctrine・Eloquentそれぞれのレコードを1件追加(登録, insert)する方法を見ていきます。
Doctrine
<?php
declare(strict_types=1);
use App\Entity\Book;
use Doctrine\ORM\EntityManagerInterface;
require __DIR__.'/../vendor/autoload.php';
$newBook = new Book();
$newBook->setTitle('ちょうぜつソフトウェア設計入門');
/** @var EntityManagerInterface $entityManager */
$entityManager = require __DIR__.'/bootstrap.php';
$entityManager->persist($newBook);
$entityManager->flush();
- Bookエンティティのインスタンスを新しく作ります。
- Bookのインスタンスのtitleプロパティに書名をセットします。(setterを利用)
- BookのインスタンスをEntityManagerのpersist()に渡します。
- EntityManagerのflush()を呼びます。
- もしデータベースへの接続がない状態で実行すると、
$entityManager->flush()
の時点でエラーになります。
Eloquent
<?php
declare(strict_types=1);
use App\Models\Book;
$newBook = new Book();
$newBook->title = 'ちょうぜつソフトウェア設計入門';
$newBook->save();
- Bookモデルのインスタンスを新しく作ります。
- Bookのインスタンスのtitleプロパティに書名をセットします。
- Bookのインスタンスのsave()メソッドを呼び出します。
- もしデータベースへの接続のない状態で実行すると、save()の時点でエラーになります。