2
我有一個應用程序,我將在數據庫中存儲鏈接,允許用戶將操作分配給鏈接。我想避免行動不存在的情況,我得到這個錯誤;檢查是否定義了Laravel控制器操作
Action App \ Http \ Controllers \ PermissionController @ index2未定義。
所以我想檢查一個動作是否存在並且有路由。如果可能在刀片上,但其他任何地方都可以。
我有一個應用程序,我將在數據庫中存儲鏈接,允許用戶將操作分配給鏈接。我想避免行動不存在的情況,我得到這個錯誤;檢查是否定義了Laravel控制器操作
Action App \ Http \ Controllers \ PermissionController @ index2未定義。
所以我想檢查一個動作是否存在並且有路由。如果可能在刀片上,但其他任何地方都可以。
沒有任何內置的方式來做到這一點。但我們有一個action
輔助方法,它根據控制器動作生成路由URL。我們可以利用這一點並創建一個簡單的幫助函數來實現相同的結果。該方法還會檢查給定的控制器方法是否與路由鏈接,因此它完全符合您的需求。
function action_exists($action) {
try {
action($action);
} catch (\Exception $e) {
return false;
}
return true;
}
// Sample route
Route::get('index', '[email protected]');
$result = action_exists('[email protected]');
// $result is true
$result = action_exists('[email protected]');
// $result is false
您也可以使用該類直接驗證操作方法的存在,但如果方法存在但未鏈接到路由,則會返回true。
這是一個很棒的提示!我肯定在編程方面學到了一些新東西。我的意思是新的嘗試,但這是一個很好的使用它的地方。 – LogicDev