EGO-LOG

40代2児の父。主にプログラム学習と開発、仮想通貨、メタバース、たまに関係ないことを綴る。

Laravelサイト構築.44 カテゴリ別記事一覧(後編)

前回、投稿情報の再表示時に、カテゴリを表示した。

次に、カテゴリをクリックしたらカテゴリに属するデータ一覧を表示したい。

 

tenomeuonome.hateblo.jp

■処理をモデルに記述

その前に、カテゴリを空白で区切って表示する処理はblade内で行っていたが、

blade内ではなるべく具体的な処理は書かない方が良いみたい。

laraweb.net

じゃぁ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は一覧表示で適当に編集。

データが少ないので微妙だけど一応できた。

 

 

次は返信部分を拡張したい。

 

つづく