【问题标题】:How to split up an Eloquent model query如何拆分 Eloquent 模型查询
【发布时间】:2014-05-25 06:47:33
【问题描述】:

我正在尝试分解这样的 Eloquent 查询

$query = new Product;

if (!empty($req->query['id'])) {
    $query->where('id', '=', '1');
}

$products = $query->get();

上面的结果给了我数据库中的所有产品。然而,这确实有效。

$products = Product::where('id', '=', '1')->get();

有没有办法做到这一点?

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    在 Laravel 4 中,您需要将查询参数附加到查询变量中。在 Laravel 3 中,它会像你一样工作。

    这是你需要做的(我不确定它是否适用于new Product tho):

    $query = new Product;
    
    if (!empty($req->query['id'])) {
        $query = $query->where('id', '=', '1');
    }
    
    $products = $query->get();
    

    【讨论】:

      【解决方案2】:

      您的代码没有意义。如果您创建 new Product - 那么它永远不会有与之关联的 ID - 所以您的 if (!empty($req->query['id'])) 将始终为 false。

      您只是想获得一个特定的产品创意吗?

      $products = Product::find(1);
      

      相同
      $products = Product::where('id', '=', '1')->get();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-02
        • 2018-10-20
        • 2019-09-16
        • 2016-05-24
        • 1970-01-01
        • 1970-01-01
        • 2021-01-16
        • 1970-01-01
        相关资源
        最近更新 更多