Php Laravel资源控制器缺少方法
我有一个laravel资源控制器,如下所示: BlogController.phpPhp Laravel资源控制器缺少方法,php,laravel,laravel-4,Php,Laravel,Laravel 4,我有一个laravel资源控制器,如下所示: BlogController.php class AdminBlogController extends BaseController { public function index() { // some code } public function create() { // some code } //等等 在route.php中,我有以下内容: Route::resource('blog', 'AdminBlogControll
class AdminBlogController extends BaseController {
public function index()
{
// some code
}
public function create()
{
// some code
}
//等等
在route.php中,我有以下内容:
Route::resource('blog', 'AdminBlogController');
现在我明白了,当您转到URL/blog时,它会转到index(),当您转到/blog/create时,它会转到create()方法
我的问题是如何处理缺少的方法?例如,当某些类型/blog/test出现错误时,如何将缺少的方法重定向回/blog
感谢摘自:
如果您使用的是资源控制器,那么应该定义一个_调用
控制器上的magic方法来处理任何缺少的方法
在AdminBlogController中,添加一个
\u调用
魔术方法:
public function __call($method,$parameters = array())
{
if (!is_numeric($parameters[0])) {
return Redirect::to('blog');
}
else {
$this->myShow($parameters[0]);
}
}
…而且,重要的是,您需要将show
方法重命名为其他方法(myShow
)。否则,/blog/test
将路由到show
,期望test
是您要显示的博客的id。您还需要在\u调用
方法中指定blog/
之后的哪些参数应被视为ID,哪些应被视为缺少的方法。在本例中,我允许将任何数值参数视为ID,而非数值参数将重定向到索引