我正在使用laravel 4,我的路线中有一个资源如下:
Route::resource('admin/admins/actions', 'AdminActionsController');
我的AdminActionsController.php控制器具有missingMethod,如下所示:
public function missingMethod($parameters = array())
{
//show All Admin Users
return Redirect::to('admin/admins');
}
它假设在缺少方法时重定向到admin / admins,但是当我尝试admin / admins / actions / test之类的东西时,我得到一个空白页面?谁知道为什么?
由于
答案 0 :(得分:0)
如果您查看一个通用控制器在没有找到任何功能时给出的错误,您会发现它是
public function __call($method, $parameters)
{
throw new \BadMethodCallException("Method [$method] does not exist.");
}
而不是missingMethod
(尽管在文档中说它确实如此)
如果覆盖__call函数,如:
public function __call($method,$parameters = array())
{
//show All Admin Users
return Redirect::to('admin/admins');
}
它将按预期工作。
请记住,例如,如果您有通话,例如:
admin/admins/actions/foobar
它不会给你一个缺失的函数,因为foobar
被认为是$ id,它被传递给show($ id)函数。如果你没有show功能,那么它只会让你失去这个功能。