我有一个控制器,我想要将来自多个表的数据与并行结构相结合.我最终想要得到的是一个可以从控制器返回的对象,所以我可以在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;
}
Run Code Online (Sandbox Code Playgroud)
StackOverflow上的另一篇文章告诉我,这可以在PHP 5.3+中运行.但是,这会在Laravel中返回以下错误:
UnexpectedValueException: The Response content must be a string or object implementing
__toString(), "object" given.
Run Code Online (Sandbox Code Playgroud)
如何在Laravel中实现此方法?双方$mc
并sm
在Laravel返回有效对象.
Raf*_*lks 26
你可以在这里做的是合并两个查询结果的数组,然后使用带有json输出的Response,如下所示.
$array = array_merge($mc->toArray(), $sm->toArray());
return Response::json($array);
Run Code Online (Sandbox Code Playgroud)
我们可以使用如下集合
$admins = User::where('type', '=', 'admin')->get();
$authors = User::where('type', '=', 'author')->get();
$admin_author_collection = $admins->merge($authors);
Run Code Online (Sandbox Code Playgroud)
另外,请将各种收集方法参考以下链接
http://laravel.com/api/4.2/Illuminate/Database/Eloquent/Collection.html