2013-07-17 142 views

回答

7

资源控制器把你绑到一个特定的网址,如:

  • GET | POST /invoices
  • GET | PUT /invoices/{$id}
  • GET /invoices/create
  • as documented

,因为按照惯例,GET /invoices用来列出所有发票,您可能要加上一些过滤:

/invoices?status=unpaid - 然后你就可以在代码中使用

<?php 

class InvoiceController extends BaseController { 

    public function index() 
    { 
     $status = Input::get('status'); 
     // Continue with logic, pagination, etc 
    } 

} 

如果你不想使用通过查询字符串进行过滤,在你的情况下,你的可能能够做类似的事情:

// routes.php 
Route::group(array('prefix' => 'invoice'), function() 
{ 
    Route::get('status/unpaid', '[email protected]'); 
}); 

Route::resource('invoice', 'InvoiceController'); 

这可能是订单路线创建的问题。匹配的第一个路线将用于完成请求。

+0

明智的解决方案和解释。我不知道该资源是否会接管整个“发票”细分市场。谢谢。 –

+0

它的确如此,请参阅我对代码的编辑。根据文档,您必须在Route :: resource调用之前定义其他路由。请参阅http://laravel.com/docs/controllers#resource-controllers –