Laravel Collectiveでの投稿後のインクリメント方法


  1. Eloquentモデルを作成する: まず、LaravelのEloquentモデルを作成します。このモデルは、データベーステーブルとの対応関係を定義します。例えば、"Post"という名前のモデルを作成する場合、次のようになります:
php artisan make:model Post
  1. ルーティングの設定: ルーティングファイル (routes/web.php) で、投稿の作成に対するPOSTリクエストを処理するルートを定義します。例えば、以下のようになります:
Route::post('/posts', 'PostController@store')->name('posts.store');
  1. コントローラの作成: コントローラクラスを作成し、投稿の作成ロジックを記述します。例えば、"PostController"という名前のコントローラを作成する場合、次のようになります:
php artisan make:controller PostController

PostControllerのstoreメソッド内で、投稿の作成とインクリメントを行います。例えば、次のようになります:

use App\Models\Post;
public function store(Request $request)
{
    // 投稿の作成
    $post = new Post;
    $post->title = $request->input('title');
    $post->content = $request->input('content');
    $post->save();
    // インクリメント
    $post->increment('views');
    // 他の処理...
    return redirect()->route('posts.index');
}

上記の例では、views カラムをインクリメントしています。

  1. フォームの作成: 投稿を作成するためのフォームを作成します。Laravel Collectiveを使用すると、簡単にフォームを作成できます。例えば、次のようになります:

上記の例では、titlecontent のフィールドを持つフォームを作成しています。

これで、Laravel Collectiveを使用して投稿後にインクリメントを行う方法がわかりました。必要に応じて、他の処理やバリデーションなどを追加することもできます。