除非我将完整的命名空间放入 Laravel 中的控制器方法,否则未定义操作

Action not defined unless I put the complete namespace to controller method in Laravel

你好,我希望你能帮我解决这个问题。我在文档中找不到解释,但我遇到了这个问题:

如果我这样放置控制器,我会收到一条错误消息,告诉我方法未定义

<a href={{ action('MovieController@create')  }}>Create Movie</a></h3>

所以我要这样解决它,把完整的命名空间

<a href={{ action('App\Http\Controllers\MovieController@create')  }}>Create Movie</a></h3>

我的问题是; 有什么方法可以让我不必放置完整的命名空间就可以正常工作吗?

如果您希望在生成指向“操作”的 URL 时将命名空间作为控制器的前缀,您需要在 RouteServiceProvider:

中定义它
protected $namespace = 'App\Http\Controllers';

此外,如果您不希望默认情况下为您的路由分配给控制器的前缀,您将必须确保路由组没有此 $namespace 变量用于分配带有 namespace 该服务提供商中的方法。

Laravel 8 中命名空间前缀的参考: