LoginSignup
0
0

More than 3 years have passed since last update.

Laravel学習

Last updated at Posted at 2020-12-24

【ブログ詳細表示の流れ】

①詳細表示したいブログの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を作って表示

【実践】

①リンクを作る
・編集前

スクリーンショット 2020-12-24 12.45.57.png

・aタグでリンク対象を囲み、href=/twitter/twieet/{{ $content->id }}と入力する
・編集後

スクリーンショット 2020-12-24 13.56.04.png

②routeを作る
・編集前

スクリーンショット 2020-12-24 12.53.31.png

・新しくroute処理を作成し、第一引数にツイート一覧の{id}を入力する。@の後ろにshowDetailとし、メソッドを作成する。
・編集後

スクリーンショット 2020-12-24 13.56.45.png

③Controllerを作る

・web.phpで定義したshowDetailを呼び出し、引数に$idを設定する。

・if文を記述し、投稿にデータがない場合はリダイレクトで投稿一覧ページに戻る記述をし、更にSessionにエラーメッセージを持たせ表示する。

・$contentsで投稿データを取得し、viewメソッドを使いユーザー画面に表示する。
 
スクリーンショット 2020-12-24 13.57.20.png

④詳細画面を作る

・Controllerで設定したエラーメッセージを表示させる。

@if(session('err_msg'))

{{ 'err_msg' }}


@endif

スクリーンショット 2020-12-24 13.59.04.png

・投稿一覧ページののファイルをコピーし、投稿内容を表示する処理を記述する

スクリーンショット 2020-12-24 14.01.07.png

0
0
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
0
0