5 php laravel-5 laravel-5.3 laravel-5.4
我有一个应用程序,它将链接存储在数据库中,从而允许用户将操作分配给该链接。我想避免不存在该操作的情况,并且出现此错误;
未定义操作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', 'TestController@index');
$result = action_exists('TestController@index');
// $result is true
$result = action_exists('TestController@index1');
// $result is false
Run Code Online (Sandbox Code Playgroud)
您也可以直接使用该类来验证action方法的存在,但是如果该方法存在但未链接到路线,则返回true。
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |