我是来自 CodeIgniter 背景的 Laravel 5 新手。我习惯不玩routes.php。 CodeIgniter 自动映射诸如 controllerName/MethodName
之类的方法。但在 Laravel 5 中,我尝试通过在 app/http/sroutes.php
顶部编写以下内容来注册 Controller 来执行相同的操作:
Route::controllers([
'admin/user' => 'Admin\AdminUserController',
]);
当我运行 php artisan route:list 时,它显示 Controller 已注册。但是当我看到 URL /public/admin/user/addRole
时,它显示 addRole 方法不存在,而我在 AdminUserController 中创建了一个方法。
管理员/AdminUserController.php
<?php namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminUserController extends Controller {
public function getaddRole(){
echo "adding Roles";
}
}
路由.php
Route::controllers([
'admin/user' => 'Admin\AdminUserController',
]);
最佳答案
<?php namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminUserController extends Controller {
public function getAddRole(){
echo "adding Roles";
}
}
注意:注意 getAddRole() 而不是 getaddRole(),使用驼峰命名法
如果您的 Controller 操作包含多个单词,您可以在 URI 中使用“破折号”语法访问该操作,如下所示:
公共(public)/管理员/用户/添加角色
关于php - Laravel 5 注册一个 Controller 来映射所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255072/