【问题标题】:Eloquent ORM - how to use WHERE to get object?Eloquent ORM - 如何使用 WHERE 获取对象?
【发布时间】:2013-07-20 14:54:11
【问题描述】:

我想使用where 从我的表中选择一个对象,如下所示:

$obj = Product::where('column_name', '=', 'string')->get();

但是 $obj 在 json 中。

我怎样才能得到一个普通的对象?

【问题讨论】:

  • 如果你var_dump($obj) 你会得到什么?通常你应该得到 Eloquent Collection 对象。如果您在集合上调用 toJson() 方法或直接从路由返回它,您将获得 Json 字符串表示形式。

标签: laravel laravel-4 eloquent


【解决方案1】:
$product = Product::where('model','like', '%table%')
    ->orderBy('price', 'desc')
    ->get();


var_dump($product);

会给你雄辩的对象集合,它不是 JSON

var_dump($product->toJson());

会给你 JSON 对象

但您还应该考虑基本查询。

$product = DB::table('product')->select('id', 'model')
    ->where('product_id' ,  '=' ,  $id)
    ->get();

所有对象的集合使用:

$products = Product::all();

$product = Product::find($id);

【讨论】:

    【解决方案2】:

    使用first()方法获取对象(假设只需要处理一个结果)。

    使用get() 方法将返回一个数组,因为查询生成器不知道您是否只有一个结果或多个。

    希望这能解决您的问题。

    【讨论】:

      【解决方案3】:

      如果您将 Eloquent 对象返回给客户端,那么它将表示为 JSON(非常适合 API)。 var_dump() 对象可以看到它实际上是一个 Eloquent 对象。

      【讨论】:

        猜你喜欢
        • 2015-09-27
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 2014-08-19
        • 2015-03-02
        • 1970-01-01
        • 2016-06-13
        • 1970-01-01
        相关资源
        最近更新 更多