Laravel 演習入門

名言が無い2

Model の基礎

問題

名言を CRUD 操作するサイトを作ろうとしています。
Quote (名言)に関する Eloquent モデルと、それに対応するテーブルを作り、初期値として、そのデータの個数がゼロであることを確かめてください。


問題は、以下の手順で解いてください。

  1. Red:小さいテストを作成し、失敗を確認してください
  2. Green:テストを成功させてください
  3. Refactor:整理・整頓してください
  4. 必要に応じて、1から3を繰り返してください

ヒント

背景知識
便利なアサーションの例

アサーションの調べ方 も合わせてご覧ください。
今回は、以下を使うのではないかと思います。

解答例

続きを読む

実行環境:

Red

テストを作成し、失敗を確認します。
bash:

php artisan make:test App/Models/QuoteTest

tests/Feature/App/Models/QuoteTest.php:

<?php

namespace Tests\Feature\App\Models;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use App\Models\Quote;

class QuoteTest extends TestCase
{
    use RefreshDatabase;
    public function test_名言がひとつも無い(): void
    {
        $quotes = Quote::all();
        $this->assertCount(0, $quotes);
    }
}

bash:

php artisan test ./tests/Feature/App/Models/QuoteTest.php

Green

Model を migration ファイルと一緒に作ります。
bash:

php artisan make:model Quote --migration

テストを実行し、通ることを確認します。
bash:

php artisan test ./tests/Feature/App/Models/QuoteTest.php

Refactor

今回は特にありません。

解説

続きを読む

Eloquent モデルについて

Eloquent とは、 Laravel に最初から入っているデータベース ORM です。
Eloquent モデルにメソッドを実装し、そのメソッドをコントローラーから実行することで、データベース処理を実行します。

今回の問題では、内部実装をしませんでしたが、これからこのモデルをたくさん使います。

Eloquent によるデータベース操作は、生の SQL よりも遅いようです。
それでもなお、 Eloquent モデルを使う理由は、その生産性の高さや、可読性の高さ、利用しやすさなのでしょう。

Eloquent の意味は、「雄弁な」とか「表現力の高い」という意味です。
なので、 Laravel に慣れ親しむなら、 Eloquent を自在に操る必要があります。

外国語を学ぶ時と一緒で、たくさん読んで、使って、慣れていくのがよいのかなと思っています。


<= 問題を読んだ・解いた・理解したなどのチェックにご利用ください。クリックすると、チェックが変化します。
問題一覧に戻る