2017-06-29 11 views
1

ユーザーが1分あたり1つのコメントしか投稿できないようにしたいと思います。スロットルのコメント

私は単純にthrottleミドルウェアを使用しようとしましたが、動作していません。私はまだ毎秒コメントを投稿できます。

ルートコード:

Route::post('comment/{id}', '[email protected]')->name('comment')->middleware('throttle'); 

コントローラーコード:それは代わりに、ユーザが1件の以上のコメントを投稿しようとした場合の保存のエラーが点滅するように

public function comment($id) 
{ 
    $this->validate(request(), [ 
     "body" => "required", 
    ]); 

    $jersey = Jersey::findOrFail($id); 
    $comment = new Comment; 
    $comment->user_id = auth()->user()->id; 
    $comment->jersey_id = $jersey->id; 
    $comment->body = request()->input('body'); 
    $comment->save(); 
    activity()->by(auth()->user())->withProperties($comment)->log('Commented'); 
    request()->session()->flash('status', 'Comment submitted!'); 

    return redirect()->route('concept', $id); 
} 

は、どのように私はそれを作るのですか毎分?

+0

スロットルミドルウェアは、Laravelの中核機能です。 – kjdion84

答えて

1

通常、私はそのようにルートグループでスロットルを使用しています:

Route::group(['middleware' => 'throttle:1'], function() { 
    // Your routes here 
    Route::get('/', '[email protected]')->name('comment'); 
    // ... 
)} 

しかし、あなたの場合にはあなたがそのようなスロットルのパラメータを指定して、あなたのコードを変更することができます。

Route::post('comment/{id}', '[email protected]')->name('comment')->middleware('throttle:1'); 

忘れてはいけませんキャッシュをクリアして変更を適用します。

関連する問題