Laravel 路由功能允许你命名一个资源并命名一个控制器来使用它。我是 Laravel 的新手,想知道是否有人知道如何在提供的路由类中扩展资源方法。
基本上说我有:(效果很好)
/invoices
但是说我想要:
/invoices/status/unpaid
这是如何实现的?
要查看我在做什么检查的基础知识:http: //laravel.com/docs/controllers#resource-controllers
Laravel 路由功能允许你命名一个资源并命名一个控制器来使用它。我是 Laravel 的新手,想知道是否有人知道如何在提供的路由类中扩展资源方法。
基本上说我有:(效果很好)
/invoices
但是说我想要:
/invoices/status/unpaid
这是如何实现的?
要查看我在做什么检查的基础知识:http: //laravel.com/docs/controllers#resource-controllers
资源控制器将您绑定到特定的 URL,例如:
/invoices
/invoices/{$id}
/invoices/create
由于按照惯例,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', 'InvoiceController@filter');
});
Route::resource('invoice', 'InvoiceController');
这可能会起作用,因为创建了订单路线。第一个匹配的路由将是用于满足请求的路由。