我有一个我认为可能是一个非常简单的问题。
我为我的类“Orders”生成了一个资源路由,因为它们需要被创建、销毁、编辑、查看等。
我在我的应用程序中有一个点,我想通过AJAX加载所有订单,这些订单目前是‘未完成’(!=完成)。
我想我应该使用orders.show路由,对吗?我唯一的困惑来自URI,它告诉我要访问orders.show路由,需要指定一个顺序,如下所示:
订单/{订单}

如果我想使用AJAX与我的控制器通信,以便控制器返回它从数据库中获取的订单列表,其中status != completed,那么我应该在URI中指定什么?我不想抢一个订单,我想抢好几个。
在我的控制器中:
public function show(Order $order){
$orders = Order::where('status', '!=' , 'Received')->get();
return $orders;
}非常感谢。
发布于 2017-02-12 08:48:05
show方法是在返回单个资源时使用的。这就是为什么它将引用订单作为路由的一部分。
index方法是返回一个资源集合的方法-多个订单。您可以通过多种方式来实现这一点:您可以有一个默认情况下返回所有订单的常规OrdersController,但是查询参数可能会根据状态进行限制,或者您可以创建一个只返回这些订单的特定OutstandingOrdersController。
这里有一个例子,告诉你如何使用第一种方法。
class OrdersController extends Controller
{
public function index()
{
$orders = Order::query();
if (request()->has('outstanding')) {
$orders->where('status', '!=', 'Received');
}
return $orders->get();
}
}然后,您的Ajax库可以对所有订单执行GET /orders,或者使用GET /orders?outstanding只检索未完成的订单。您还可以考虑在查询中使用status参数,以便只检索特定状态的订单。
https://stackoverflow.com/questions/42182241
复制相似问题