gpt4 book ai didi

php - 检查是否定义了 Laravel Controller Action

转载 作者:可可西里 更新时间:2023-11-01 13:59:39 25 4
gpt4 key购买 nike

我有一个应用程序,我将在其中将链接存储在数据库中,允许用户为链接分配操作。我想避免操作不存在而出现此错误的情况;

Action App\Http\Controllers\PermissionController@index2 not defined.

所以我想检查一个 Action 是否存在并且有路由。如果可能在 Blade 中,但其他任何地方都可以。

最佳答案

没有任何内置方法可以做到这一点。但是我们有一个 action 辅助方法,它根据 Controller Action 生成路由 url。我们可以利用它并创建一个简单的辅助函数来实现相同的结果。该方法还会检查给定的 Controller 方法是否已链接到路由,因此它完全可以满足您的需求。

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

您也可以直接使用类验证操作方法是否存在,但如果该方法存在但未链接到路由,则返回 true。

关于php - 检查是否定义了 Laravel Controller Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com