Mar*_*ons 0 php laravel laravel-5
我正在使用 laravel 5.5,我正在尝试使用到控制器的自动路由,但它不起作用
在 web.php(此版本的路由文件)中,我有以下行
Route::resource('panel', 'panel');
Route::resource('/', 'HomeController');
Run Code Online (Sandbox Code Playgroud)
在面板中我有以下操作
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class panel extends Controller{
public function index(){
return \View::make('panel.index');
}
public function registrar(){
return \View::make('panel.registrar');
}
}
Run Code Online (Sandbox Code Playgroud)
但它只是调用index()视图,当用户访问 url 时,不会调用 registrar() 视图
site.com/panel/registrar
Run Code Online (Sandbox Code Playgroud)
屏幕上打印以下错误
"Method [show] does not exist on [App\Http\Controllers\panel]."
Run Code Online (Sandbox Code Playgroud)
我尝试使用 base_controller 但它也不起作用
"Class 'App\Http\Controllers\Base_Controller' not found"
Run Code Online (Sandbox Code Playgroud)
有没有办法识别这些行为?
资源路由设置 7 个特定路由,即控制器上需要的 7 个特定方法,7。如果您不想要所有 7 个路由,则必须这样定义。
资源路由不是隐式控制器。它不会查看控制器上的方法然后进行路由。资源路由是一个“特定”的东西。Laravel 中不再有隐式控制器,因为这确实没有意义。
您创建的路由指向不存在的方法,这就是错误所在。
另外,第一个参数Route::resource是资源“名称”,而不是路径。从技术上讲,它不是 URI。它是资源的名称。
Route::resource('/', ...) // not a name
Run Code Online (Sandbox Code Playgroud)