繁体   English   中英

如何在Laravel 4中使用RESTful实现指向控制器的命名路由?

[英]How to implement named routes to controller with RESTful in Laravel 4?

我在http://codebright.daylerees.com/上关注Laravel 4教程。

在codebright.daylerees.com/controllers中,您可以看到RESTful Controllers教程

我到达了高级路由教程codebright.daylerees.com/advanced-routing。

有一个示例代码可以使用Route :: get和命名路由。 然后我尝试使用Route :: controller来创建具有命名路由的RESTful URI。 然后,我尝试将此代码编写为routes.php

Route::controller('my/very/long/article/route2', array(
'as'=>'article2',
'uses'=>'Blog\Controller\Article'
));

这是我的controller / Article.php代码:

<?php
namespace Blog\Controller;
use View;
use BaseController;

class Article extends BaseController
{
    public function getCreate()
    {
       return View::make('create');
    }
    public function postCreate()
    {

    }
}

当我尝试访问我的/ very / long / article / route2 / create时,它显示错误

ErrorException
Array to string conversion
…\vendor\laravel\framework\src\Illuminate\Routing\Controllers\Inspector.php

知道如何使用RESTful实现到控制器的命名路由吗?

Route :: controller方法接受三个参数。 第三个参数是可选的,它正是您所需要的。 只需将动作名称的映射传递给命名路由作为第三个参数。

代码示例:

Route::controller(
    'my/very/long/article/route2', 
    'Blog\Controller\Article',
    array(
        'getCreate' => 'article.create',
        'postCreate' => 'article.create.post' 
    )
);
// now you can use route('article.create.post') to get URL of Article::postCreate action
// and route('article.create') to get URL of Article::getCreate action

是的,它看起来有点过于复杂,但仍然比每个动作的单独路线更好。

此解决方案适用于Laravel 4.1(未在其他版本中测试)。

控制器方法接受两个参数。 第一个是控制器处理的基URI,而第二个是控制器的类名。 喜欢,

Route::controller('my/very/long/article/route2', 'BlogController');

有关使用RESTful API的信息,请参阅我的另一篇文章Laravel 4 REST参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM