Laravel 4 missingMethod返回一个空白页面?

时间:2014-04-15 17:37:56

标签: php laravel laravel-4

我正在使用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之类的东西时,我得到一个空白页面?谁知道为什么?

由于

1 个答案:

答案 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功能,那么它只会让你失去这个功能。