不能在 laravel 中使用控制器名称,必须使用命名空间

Can not use controller name in laravel, must use namespace

Blade view and PostsController

当我使用{!! Forms::open(['method'=>'post', 'action'=>'PostsController@store']) !!} 出错了。

但是当我使用 {!! Forms::open(['method'=>'post', 'action'=>'App\Http\Contollers\PostsController@store']) !! 有效。

为什么我不能只使用控制器名称而不是命名空间名称?

感谢您的帮助。

您可以使用这样的路线名称

 Form::open(['route' => 'route.name'])

例如,创建一个 post 应该是这样的

Form::open(['route' => 'posts.create'])

有关更多信息,请查看文档 here

在RouteServiceProvider.php取消注释 受保护的 $namespace = 'App\Http\Controllers'; 这条线

根据 [PSR-0, PSR-4] 编码标准,我们必须在代码中使用命名空间。

在你的情况下,如果你不写完整路径,你可以简单地使用:

  1. 'action'=>“{{路线('route_name')}}”
  2. 'action'=>“{{ url('url_name') }}”