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