首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中使用资源路由

在Laravel中使用资源路由
EN

Stack Overflow用户
提问于 2017-02-12 07:00:04
回答 1查看 215关注 0票数 0

我有一个我认为可能是一个非常简单的问题。

我为我的类“Orders”生成了一个资源路由,因为它们需要被创建、销毁、编辑、查看等。

我在我的应用程序中有一个点,我想通过AJAX加载所有订单,这些订单目前是‘未完成’(!=完成)。

我想我应该使用orders.show路由,对吗?我唯一的困惑来自URI,它告诉我要访问orders.show路由,需要指定一个顺序,如下所示:

订单/{订单}

如果我想使用AJAX与我的控制器通信,以便控制器返回它从数据库中获取的订单列表,其中status != completed,那么我应该在URI中指定什么?我不想抢一个订单,我想抢好几个。

在我的控制器中:

代码语言:javascript
复制
  public function show(Order $order){
    $orders = Order::where('status', '!=' , 'Received')->get();
    return $orders;
  }

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-12 08:48:05

show方法是在返回单个资源时使用的。这就是为什么它将引用订单作为路由的一部分。

index方法是返回一个资源集合的方法-多个订单。您可以通过多种方式来实现这一点:您可以有一个默认情况下返回所有订单的常规OrdersController,但是查询参数可能会根据状态进行限制,或者您可以创建一个只返回这些订单的特定OutstandingOrdersController

这里有一个例子,告诉你如何使用第一种方法。

代码语言:javascript
复制
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参数,以便只检索特定状态的订单。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42182241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档