我有一个控制器,我想把多个表中的数据与并行结构结合起来。最后我想得到的是一个对象,我可以从控制器返回,这样我就可以在Backbone中解析它。
我想做这样的事情:
public function index()
{
$mc = MainContact::where('verified', '=', '1')->get();
$sm = SendMessage::where('verified', '=', '1')->get();
$obj = (object) array_merge((array) $mc, (array) $sm);
return $obj;
}
another post on StackOverflow告诉我,这在PHP 5.3+中有效。但是,这会在Laravel中返回以下错误:
UnexpectedValueException: The Response content must be a string or object implementing
__toString(), "object" given.
如何在Laravel中实现此方法?$mc
和sm
都返回Laravel中的有效对象。
6条答案
按热度按时间jrcvhitl1#
现在你可以用
$new_collection = $collection->merge($other_collection)
.这在Laravel 4中起作用,似乎同时处理数组和集合。
gfttwv5a2#
这里可以做的是合并两个查询结果的数组,然后使用Response和json输出,如下所示。
vwoqyblh3#
我们可以使用收集如下
另外,请参考以下链接的各种收集方法
http://laravel.com/api/4.2/Illuminate/Database/Eloquent/Collection.html
nimxete24#
这对我很有效。使用array_merge_recursive()代替array_merge。
vpfxa7rd5#
我使用concat和为我工作。就像这样:
z6psavjg6#
你可以使用
array_merge(firstObject,secondObject)
函数。