【问题标题】:How to implement named routes to controller with RESTful in Laravel 4?如何在 Laravel 4 中使用 RESTful 实现到控制器的命名路由?
【发布时间】:2013-12-03 05:20:15
【问题描述】:

我在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()
    {

    }
}

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

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

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

【问题讨论】:

    标签: php rest laravel laravel-4


    【解决方案1】:

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

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

    要使用 RESTful API,请参阅我的另一篇文章 Laravel 4 Route Parameters for REST

    【讨论】:

      【解决方案2】:

      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(未在其他版本中测试)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-24
        • 2012-12-24
        • 2015-02-04
        • 2015-07-05
        • 1970-01-01
        • 2015-07-20
        • 1970-01-01
        • 2013-06-09
        相关资源
        最近更新 更多