渋谷で働くエンジニア福さんのYoutube動画,実践で学ぶプログラミング入門 の学習記録です。
機能実装編
1、ブログ一覧機能の実装
<流れ> 1, ModelでDBからブログデータを取り出す 2, Controllerでモデルクラスを呼び出し、Viewに渡すpublic function showList()
{
$blogs = Blog::all();
//BlogModelからallメソッドで全てのブログデータを取得し、変数にいれる
return view(
'blog.list',
//ディレクトリ中のビューファイル名(view/blog/list.blade.php)
['blogs' => $blogs]
//keyとvalueでデータを配列にいれ、viewに渡す
);
}
3, Viewで一覧表示させる
@foreach($blogs as $blog)
<tr>
<td>{{ $blog->id }}</td>
<td>{{ $blog->updated_at }}</td>
<td>{{ $blog->title }}</td>
<td>{{ $blog->content }}</td>
</tr>
@endforeach
2、ブログ詳細の実装
<流れ> 1, 詳細表示したいブログのIDのリンクを作成 ` {{ $blog->title }}` 2, Route(web.php)でIDを受け取り、Controllerへ `Route::get('/blog/{id}', 'BlogController@showDetail') ->name('show');` 3, Modelで該当データを取得 4, Controllerでモデルクラスを呼び出し、Viewに渡すpublic function showDetail($id)
{
$blog = Blog::find($id);
//findメソッドで該当するIDのブログデータを取得し、変数に入れる
if(is_null($blog)){
\Session::flash('err_msg', 'データがありません。');
return redirect(route('blogs'));
}
return view(
'blog.detail',
['blog' => $blog]
);
}
<nullとemptyの違い>
- null:
変数が NULL かどうか調べる。変数がNULLなら”TRUE”それ以外は”FALSE”を返す - empty:
変数が空(空文字 0 NULL FALSE 空の配列)だったら”TRUE”それ以外は”FALSE”を返す
5, Viewで表示
@extends('layouts')
@section('title', 'ブログ詳細')
@section('content')
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>{{ $blog->title }}</h2>
<span>作成日: {{ $blog->created_at}}</span>
<span>更新日: {{ $blog->updated_at}}</span>
<p>{{ $blog->content}}</p>
</div>
</div>
@endsection