Php 调用未定义的方法-Laravel
我是Laravel的新手,我正在使用Laravel 4,我正在尝试创建一个用户控制器,如下所示:Php 调用未定义的方法-Laravel,php,laravel,Php,Laravel,我是Laravel的新手,我正在使用Laravel 4,我正在尝试创建一个用户控制器,如下所示: class UserController extends BaseController { public function getIndex (){ } public function showProfile($id){ echo "$id"; View::make('user.profile'); } public
class UserController extends BaseController {
public function getIndex (){
}
public function showProfile($id){
echo "$id";
View::make('user.profile');
}
public function getNew(){
}
public function postNew(){
}
public function getLogin(){
}
在我要使用的路线中:
路由::控制器('user','UserController')
它与所有expect(showProfile)一起工作正常,例如当我转到../user/profile/2时
我得到了对未定义方法的调用
注意:
我可以用
Route::get('user', 'UserController@getIndex');
Route::get('user/new', 'UserController@getNew');
Route::post('user/new', 'UserController@postNew');
Route::get('user/login', 'UserController@getLogin');
Route::get('user/{id}', 'UserController@showProfile');
这会很好,但我不认为这是一个好的实践你没有为之定义路线
../user/profile/2
你有没有试过这样的方法:
Route::get('user/profile/{id}', 'UserController@showProfile');
是的,我尝试了它,但是它覆盖了所有其他方法,比如user/login,但是我添加了一些东西,使它能够工作Route::get('user/{id}','UserController@showProfile')->其中('id','[0-9]+');所以它不会覆盖其他方法,但这仍然不理想,如果我想传递{username}而不是{id},那么我不能使用where('id','[0-9]+');
user/profile/{id}
如何覆盖其他路由?其他路由中不包含“profile”是的,很抱歉它与e/user/profile/{id}或{username}一起工作,但实际上我正在寻找类似../user/{username}或更像Facebook../{username}的内容。在这种情况下,您需要使用路由筛选器来检查$username是否是存储在数据库中的实际用户名。