【问题标题】:Laravel Controller Routes with Parameters带参数的 Laravel 控制器路由
【发布时间】:2013-05-23 08:35:56
【问题描述】:

我有一个具有多个 REST-ful 控制器的 Laravel 3 应用程序。

不带参数的控制器(例如处理 URL /api/books 的控制器)工作正常,但是当我尝试访问带参数的控制器的 URL 时(例如 /api/book/1),它不起作用.但是,如果我将方法名称附加到 URL(例如/api/book/index/1),它确实可以正常工作。

有没有办法不需要在控制器上使用关键字“index”?

其中一个不起作用的控制器的示例--

<?php
class API_Book_Controller extends Base_Controller {

/**
 * Indicates the controller is RESTful
 * @var boolean
 */
public $restful = true;

/**
 * Fetch a book by ID
 * @param  integer $id ID number of the book
 * @return Response    HTTP response
 */
public function get_index($id = null){
    $book = Book::find($id);

    if(is_null($book)){
        return Response::error('404');
    }

    return Response::eloquent($book);
}

【问题讨论】:

  • 你在使用控制器路由吗?
  • 是的,我正在使用控制器路由(例如Route::controller('home')

标签: php laravel laravel-3


【解决方案1】:
Route::get('api/book/(:num?)', 'API_Book_Controller@get_index');

【讨论】:

  • 你的意思是'API_Book@index'。 get已经被Route类型声明了,不需要controller后缀。
  • 是的,我担心我必须明确定义路线。最好是,因为我使用的是控制器路由(例如Route::controller('home')),所以有一种方法可以简单地忽略index 操作名称并将其用作路由......
猜你喜欢
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 2021-09-06
  • 2014-12-10
  • 1970-01-01
  • 2013-08-15
  • 2018-06-17
相关资源
最近更新 更多