如何将Laravel Collection用作对象和数组?

时间:2015-07-31 13:16:25

标签: laravel eloquent

我这样做:

$product = new \Illuminate\Database\Eloquent\Collection($product_array);

但它作为一个数组工作,而不像$product->subscription这样的对象不起作用,但$product['subscription']会起作用。

3 个答案:

答案 0 :(得分:2)

您可以以面向对象的方式使用这样的集合:

$product->get('subscription');

答案 1 :(得分:0)

您可以将ArrayObjectArrayObject::ARRAY_AS_PROPS标志一起使用

$api = new \ArrayObject(collect([
   'api_version' => 1,
   'facebook_id' => 1,
]),2)

echo $api->facebook_id; // ouputs 1

请注意,2只是ArrayObject::ARRAY_AS_PROPS掩盖丑陋的简写。

必须有另一种方式,我们只是遗漏了一些东西。我正在使用Laravel 5.4并尝试在方法中使用此方法来从示例中获取$request$api之类的内容。

答案 2 :(得分:0)

不确定这是正确的方法还是可以的

$product = (object) $product_array;
$product->subscription; 

示例:

$product_arr = [ 
   'name' => 'bag',
   'qty' => 4,
];

$product = (object) $product_arr;
$product->name; // result = bag