【ブログ詳細表示の流れ】
①詳細表示したいブログのIDでリンクを作って飛ばす
・特定の一つのブログを取得するにはIDを使う
例)1番目のデータを取得したい場合
/blog/1
→1がIDにあたる
②routeでIDを受け取りControllerへ渡す
・web.php
Route::get('/blog/{id}', 'BlogCkontroller@showDetail')
ルートパラメータと呼ばれ、{}で囲むことで定義できる。
この例だと$idという変数で値をControllerに渡せる。
③Modelで該当IDデータを取り出す
・Eloquentメソッドを使う
例)1番目のブログモデルを取得
$blog = Blog::find(1)
例)最初にマッチしたモデルを取得
$bolg = Blog::where('id', '=', '1')->first()
③Viewで表示する
・ControllerのshowDetailから渡す
↓
・詳細表示用のBladeを作って表示
【実践】
①リンクを作る
・編集前
・aタグでリンク対象を囲み、href=/twitter/twieet/{{ $content->id }}と入力する
・編集後
②routeを作る
・編集前
・新しくroute処理を作成し、第一引数にツイート一覧の{id}を入力する。@の後ろにshowDetailとし、メソッドを作成する。
・編集後
③Controllerを作る
・web.phpで定義したshowDetailを呼び出し、引数に$idを設定する。
・if文を記述し、投稿にデータがない場合はリダイレクトで投稿一覧ページに戻る記述をし、更にSessionにエラーメッセージを持たせ表示する。
・$contentsで投稿データを取得し、viewメソッドを使いユーザー画面に表示する。
④詳細画面を作る
・Controllerで設定したエラーメッセージを表示させる。
@if(session('err_msg'))
{{ 'err_msg' }}
@endif
・投稿一覧ページののファイルをコピーし、投稿内容を表示する処理を記述する