如何将Laravel集合同时用作对象和数组?

如何将Laravel集合同时用作对象和数组?,laravel,eloquent,Laravel,Eloquent,我正在这样做: $product=new\illumb\Database\elount\Collection($product\u数组) 但是它可以作为一个数组工作,而不是像$product->subscription这样的对象不起作用,但是$product['subscription']可以起作用。您可以以面向对象的方式使用这样的集合: $product->get('subscription'); 您可以使用ArrayObject::ARRAY\u AS\u PROPS标志 $api

我正在这样做:

$product=new\illumb\Database\elount\Collection($product\u数组)


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

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

$product->get('subscription');
您可以使用
ArrayObject::ARRAY\u AS\u PROPS
标志

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

echo $api->facebook_id; // ouputs 1
请注意,
2
只是
ArrayObject::ARRAY_AS_PROPS
的缩写,用来掩盖丑陋

肯定还有别的办法,我们只是错过了一些东西。我使用的是Laravel5.4,试图将其用于从示例中获取
$request
或类似
$api
的内容

$product = (object) $product_array;
$product->subscription; 
例如:

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

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

您使用的是哪个版本的Laravel?Laravel 4.2……@Lowerndsno但在我的代码中,我有一个雄辩的对象用作数组和对象,所以我现在有一个自定义数组。我希望它也能像这样运行。所以我不必替换我现有的代码。如果您不确定某个解决方案是否正确,请在发布之前测试它。这样,你们两个都将学到一些东西(不管它是否有效,理想情况下为什么有效),并且你们将能够更好地把它传下去。理想情况下,您还可以解释它为什么有效,以及原始问题中的问题是什么。