我有这个Laravel 4.2 Eloquent Query
$m[] = Auth::user()->id;
foreach ($friends as $friend) {
$m[] = $friend->added_user;
}
$news = NewsFeed::whereIN('user_id', $m )->take($limit)->skip($offset)->get();
实际查询:
$news = NewsFeed::whereIN('user_id', array( 'CUS_6367VkCX5i243656TwM3', 'CUS_G530t786S1GVwlcJ3Nw1', 'CUS_xks5oi3dy2C0sa02usD2' ) )->take(10)->skip(5)->get();
数据库:
它应该返回一些内容,Newsfeed Table中有数据但是 结果是没有,它是空的。
我的Laravel 4.2 Eloquent查询有什么问题?
但是,当我这样做时:
$news = NewsFeed::whereIN('user_id', $m )->get();
返回结果,没有限制并跳过。
答案 0 :(得分:0)
$m[] = $friend->added_user;
似乎是你出错的地方
DD($朋友 - > added_user)
您将在数组中看到$m
个用户对象。但是,在您的查询中,我需要的是user_id
的{{1}}。
在这种情况下,您应该修改如下:
$ m [] = $ friend-> added_user() - > first() - > user_id; //这取决于你的
added_user
返回什么,如果它返回一个数组,你应该循环它以获取所有id或使用added_user
来获取user_id数组
希望有所帮助
答案 1 :(得分:0)
这样可以解决问题:
$news = DB::select( DB::raw(" SELECT * FROM `news_feed` WHERE `user_id` IN ('CUS_6367VkCX5i243656TwM3', 'CUS_G530t786S1GVwlcJ3Nw1', 'CUS_xks5oi3dy2C0sa02usD2') LIMIT 5, 5 ") );