3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel --resourceコマンド

Last updated at Posted at 2019-07-11

#何が言いたい
Laravelの--resource コマンドがうれしい。
自分のような初心者が一からCRUD機能付きアプリを実装したいとき、何をしたらいいかを示してくれる。
=>はじめの一歩でコケにくい。

#--resourceコマンド
Laravelではphp artisan make:controller FooControllerとコマンドを実行すると、FooControllerのひな型が作成されます。

FooController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class FooController extends Controller
{
  //
}

これだけでもありがたいのですが、中身がまっさらなので初心者的にはこれからどうすればいいかわからない...

そこで、上記のコマンドを実行する代わりに、末尾に--resourceを追加して、
php artisan make:controller FooController --resourceとコマンドを実行すると...

FooController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class FooController extends Controller
{
     /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    // 中略 //
    // create, store, show, edit, updateメソッドが含まれます //

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Foo  $foo
     * @return \Illuminate\Http\Response
     */
    public function destroy(Foo $foo)
    {
        //
    }
}

このように、登録・更新・参照・削除に必要なメソッドを簡単に用意してくれます🎉

次にこれらのメソッドを使用するために、ルーティングを設定しましょう。
と言っても...

web.php
Route::resource('foo', 'FooController');

これをweb.phpファイルに追加して終了です。
php artisan route:listコマンドを実行すると、それぞれのルーティングが設定できているのが確認できると思います。

あとはそれぞれのメソッドの中に処理を書いていけばいいので、作業の見通しがつきますね!

#おわりに
間違いがある場合、もしくはより良い方法がある場合には、忌憚なくご指摘いただけると嬉しいです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?