組み込みのソリューションはミドルウェアを使用することですが、特定のアクションに対してそのコードを実行したいと思っています。
私があなただったら、私はすべての私のコントローラから継承する具象controller
クラスを作成したい、とこのコントローラは、このようなものになります。私はこのことができます願ってい
class FilteredController extends BaseController
{
private function getControllerAction(Request $request)
{
$action = $request->route()->getAction();
$controller = class_basename($action['controller']);
list($controller, $action) = explode('@', $controller);
return ['action' => $action, 'controller' => $controller];
}
private function validateUpdateRequests()
{
/* Validation code
that will run for update_post action,
and update_post ONLY*/
}
public function validateCreateRequests()
{
/* Validation code that will run for
create_post action, and
create_post ONLY.*/
}
public __construct(Request $request)
{
$route_details = $this->getControllerAction($request);
if($route_details['controller'] == 'postsController')
{
if($route_details['action'] == 'update_post')
{
$this->validateUpdateRequests();
}
else if($route_details['action'] == 'update_post')
{
$this->validateCreateRequests();
}
}
}
}
を。
再び、より良い方法は、ミドルウェアを使用することになり、そして、あなたのような、ルートでフィルタリングを指定する必要があります特定のアクションのためのミドルウェアを使用する:
Route::get('/route_to_my_action', '[email protected]')
->middleware(['my_middleware']);
の詳細について
ミドルウェアを使用することができます... – Amarnasan
@Amarnasan:私はリンクを確認しましたが、どのアクション方法よりも前に発火する共通の前夜については何も考えていません。 –
達成したいことの具体例を挙げることはできますか? –