【发布时间】:2014-07-06 19:39:30
【问题描述】:
我有 2 张桌子; user 和 user_info 及其模型 User 和 UserInfo。 user 持有id、expire 和user_info_id,而user_info 持有id 和username。
我想获取expire 大于或小于$now 或null 的所有用户,并且我想按username 对列表进行排序。最后一部分是我的问题所在。
我现在拥有的;
$usersQ = User::where ('expire', '>', $now)->orWhereNull ('expire');
$usersCount = $usersQ->count ();
$users = $usersQ->get ();
我试过了;
$usersQ = User::with ('user_info')->join ('user_info', 'user.user_info_id', 'user_info.id')->where ('expire', '>', $now)->orWhereNull ('expire')->orderBy ('username');
很遗憾,这不起作用(SQL 语法错误)。
注意:我确实需要User 作为我的主要实体,而不是UserInfo,因为我需要在我的视图中来自User 的其他信息。
基本上;
SELECT user.*, user_info.username, user_info.fname, user_info.lname
FROM user
INNER JOIN user_info ON user.user_info_id = user_info.id
ORDER BY user_info.username ASC;
然后我就可以访问来自user 的所有内容以及来自user_info 的这三个字段。我到底如何用 Laravel 做到这一点?
【问题讨论】:
标签: join laravel laravel-4 sql-order-by eloquent