Laravelサイト構築.44 カテゴリ別記事一覧(後編)
前回、投稿情報の再表示時に、カテゴリを表示した。
次に、カテゴリをクリックしたらカテゴリに属するデータ一覧を表示したい。
■処理をモデルに記述
その前に、カテゴリを空白で区切って表示する処理はblade内で行っていたが、
blade内ではなるべく具体的な処理は書かない方が良いみたい。
じゃぁControllerに書くべきか?というとそれも違い、
Modelに書くのが正しいようだ。
Modelに関数を作成する。
app\models\Thread.php
public function out_category_list()
{
if( empty($this->category) ){
return;
}
$arr_cate = preg_split("/\s+/", mb_convert_kana($this->category, 's'));
foreach( $arr_cate as $cate1 ){
echo "<a href=\"/category/" . urlencode($cate1) . "\" class=\"btn btn-outline-secondary btn-sm me-1\">" . $cate1 . "</a>";
}
}
bladeから呼び出す。
resources\views\bbs\index.blade.php
同じ出力が確認できた。
■カテゴリ別記事一覧のビュー作成
とりあえず既存画面のビューをコピーする。
index.blade.php
↓
categories.blade.php
カテゴリのリンクURLが
<a href="/categories/%E3%83%86%E3%82%B9%E3%83%88">テスト</a>
となっている。
ボタンをクリックすると、
コントローラやWeb.phpが準備できてないので当然やね。
コントローラ追加
app\controllers\CategoriesController.php
routes\web.php
追記
Route::resource('/categories', 'App\Http\Controllers\CategoriesController');
Route::get('/categories/show', 'App\Http\Controllers\CategoriesController@show')->name('categories.show');
bladeは一覧表示で適当に編集。
データが少ないので微妙だけど一応できた。
次は返信部分を拡張したい。
つづく