我的 mysql 查询行出了点问题
somethings wrong with my mysql query line
我有这个Laravel 4.2Eloquent查询
$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();
数据库:
它应该 return 一些东西,Newsfeed Table 里面有数据但是
结果是 none,它是空的。
我的 Laravel 4.2 Eloquent 查询有什么问题?
但是当我这样做时:
$news = NewsFeed::whereIN('user_id', $m )->get();
它return是一个结果,没有限制,跳过。
看来 $m[] = $friend->added_user;
是你出错的地方
dd($friend->added_user)
您将在数组中看到 $m
个用户对象。但是,在您的查询中,需要的是 added_user
的 user_id
。
在这种情况下,您应该修改如下:
$m[] = $friend->added_user()->first()->user_id; //it depends on what your added_user
returns, if it returns an array, you should loop over it to get all ids or use ->lists('user_id')
to get an array of user_id
希望对您有所帮助
这样做就可以了:
$news = DB::select( DB::raw(" SELECT * FROM `news_feed` WHERE `user_id` IN ('CUS_6367VkCX5i243656TwM3', 'CUS_G530t786S1GVwlcJ3Nw1', 'CUS_xks5oi3dy2C0sa02usD2') LIMIT 5, 5 ") );
我有这个Laravel 4.2Eloquent查询
$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();
数据库:
它应该 return 一些东西,Newsfeed Table 里面有数据但是 结果是 none,它是空的。
我的 Laravel 4.2 Eloquent 查询有什么问题?
但是当我这样做时:
$news = NewsFeed::whereIN('user_id', $m )->get();
它return是一个结果,没有限制,跳过。
$m[] = $friend->added_user;
是你出错的地方
dd($friend->added_user)
您将在数组中看到 $m
个用户对象。但是,在您的查询中,需要的是 added_user
的 user_id
。
在这种情况下,您应该修改如下:
$m[] = $friend->added_user()->first()->user_id; //it depends on what your
added_user
returns, if it returns an array, you should loop over it to get all ids or use->lists('user_id')
to get an array of user_id
希望对您有所帮助
这样做就可以了:
$news = DB::select( DB::raw(" SELECT * FROM `news_feed` WHERE `user_id` IN ('CUS_6367VkCX5i243656TwM3', 'CUS_G530t786S1GVwlcJ3Nw1', 'CUS_xks5oi3dy2C0sa02usD2') LIMIT 5, 5 ") );