Laravel投稿サイト構築.82 -いいね機能の実装.2(コントローラ作成)-
前回はイイネ機能実装のための準備。
テーブルの作成とモデルの作成。
目次
モデル関数追加
イイネした際に、likesテーブルにデータ追加する。
イイネ解除した際に、likesテーブルからデータを削除する。
-----
// isLikeを使って、既にlikeしたか確認したあと、いいねする(重複させない)
public function like($thread_id)
{
if($this->isLike($thread_id)){
//もし既に「いいね」していたら何もしない
} else {
$this->likes()->attach($thread_id);
}
}
//isLikeを使って、既にlikeしたか確認して、もししていたら解除する
public function unlike($thread_id)
{
if($this->isLike($thread_id)){
//もし既に「いいね」していたら消す
$this->likes()->detach($thread_id);
}
}
-----
コントローラー作成
イイネの情報操作のためのコントローラ作成
-----
php artisan make:controller LikeController
-----
イイネ登録関数と削除関数追加
-----
public function store_theme($thread_id)
{
$md_theme = new Thead();
$md_theme->like($thread_id);
return 'ok!';
}
public function destroy_theme($thread_id)
{
$md_theme = new Thead();
$md_theme->unlike($thread_id);
return 'ok!';
}
ルーティング追記
web.phpにイイネ用のルーティングを追記する。
-----
Route::post('/like_theme/{thread_id}',[LikeController::class,'store_theme']);
Route::post('/unlike_theme/{thread_id}',[LikeController::class,'destroy_theme']);
-----
今日はここまで
次回はボタンの追加、イイネの動作を実装していく予定
つづく