CRUD機能を作成する
C:Create 新規投稿できる
R:Read 投稿したものがみれる
U:Update 投稿したものをアップデートできる
D:Delete 投稿を削除できる
webサービスの基本機能を作っていきます。
Controllerを作成する
掲示板アプリケーションには、一覧表示、個別表示、新規投稿画面、更新画面が必要です。
また、新規投稿、更新、削除の処理を担当するルート(線路)が必要なので、合計7つになります。
まとめると、以下の通りです。

まずはMVCモデルのControllerを作成しましょう。
今回は「リソースコントローラー」を作成します。リソースコントローラーを作成することで、上記7つをモーラすることができます。
今回は下記2つのコントローラーを作成していきます。下記コマンドを打ち込みましょう。
//bash % php artisan make:controller PostController --resource % php artisan make:controller CommentController --resource
上記コマンドを打ったことで、
app Http Controllers 内に
「PostController」「CommentController」が作成されたと思います。完璧です。
次に
routes web.php を確認しましょう
web.phpではどのURIにアクセスがきたときに、どのコントローラを動かすかをかく場所になります。ここに記載することを「ルーティング」するともいいます。
//web.php Route::resource('posts', 'PostController'); Route::resource('comments', 'CommentController');
上記のように追加することで、URIのルート(線路)が開通しました。確認しましょう。
ターミナルを開いて
//bash % php artisan route:list
と打ち込みましょう。この中に「posts」のルーティング、「comments」のルーティングの記載があれば完璧です。
ここまでで、ユーザーが特定のURIにアクセスした時に動かすControllerの指定(ルーティング)が完了しました。
掲示板の一覧ページを作成する
まず、ログインしてみましょう。そうすると

URIとしては「/home」にとばされるはずです。
これを「/posts」に飛ばすように変更を加えましょう。
app Providers RouteServiceProvider.phpを開きましょう
// RouteServiceProvider.php // public const HOME = '/home'; →こちらを public const HOME = '/posts';→こちらに変更しましょう。
ログアウトしてもう一度ログインしてみましょう。
そうすると…..

ちゃんと「/posts」に飛ばされました!完璧。
次に
resources Views のなかに Postsディレクトリを作りましょう。
その中に、

「index.blade.php」「show.blade.php」「edit.blade.php」「create.blade.php」
を作成。
「一覧画面」「詳細画面」「編集画面」「新規投稿画面」
に適用されるview(ユーザーがみるページ)です。
そうしましたら
index.phpを開いて、下記を記入しましょう。BootstrapのCardを使っています。
//index.php @extends('layouts.app') →ここでviews layoutsの app.blade.phpを読み込みます @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card text-center"> <div class="card-header"> 投稿一覧 </div> <div class="card-body"> <h5 class="card-title">初めての投稿</h5> <p class="card-text">油そばは春日亭も好きですが、kirinjiが一番好きです</p> <a href="#" class="btn btn-primary">詳細</a> </div> <div class="card-footer text-muted"> 2日前 </div> </div> </div> </div> </div> @endsection
次に
PostController.phpをひらきましょう。
一覧画面を作成するので、「public function index」に書き込んでいきます。
//PostController.php public function index() { return view('posts.index'); →追加(postsディレクトリのindex.blade.phpという意味) }
ここまでで、
ユーザーが
/postsにGETでアクセス→ルーティング→PostControllerのindexが発火→index.blade.phpが表示
までの一連の流れを作成することができました。
それではもう一度ログインをしてみましょう!!

いい感じに表示できましたね!!
それでは今回はここまで。
コメントを残す