php - 除非我将完整的命名空间放入 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 中命名空间前缀的参考:目标类控制器不存在 - Laravel 8
推荐阅读
- javascript - e.touches[0].pageY 返回未定义
- reactjs - 如何在使用 graphql useQuery 返回错误时关闭 shopify 北极星横幅?
- python-3.x - Django - 将字符串字段保存到 Postgres 中的日期字段中
- iis - Clasic ASP webapp 在新服务器中获取 HTTP 错误 404.17
- matlab - 保存的图例框不显示其中一条线
- google-sheets - 在 Google 表格中加入表格
- javascript - 顶部的传单标签
- java - Open JDK JVM not support this platform then Unsupported major.minor version 52.0
- javascript - Js中的空列表原生导入
- django - 使用 django-elasticsearch-dsl(或其他任何东西?)的模型的部分同步