我在模型上有一个功能:
public function getAll()
{
$allusers = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')->get();
return $allusers;
}
除非用户的ID替换为国家/地区的ID,否则此工作正常:
array(2) { [0]=> object(stdClass)#201 (20) { ["id"]=> int(42) ["name"]=> string(11) "Jim Elliott" ... and so on
由于country_id为42,因此ID应为1。
我应该为国家/地区ID添加别名吗?或者我可以将countries表的字段限制为国家和国旗吗?
答案 0 :(得分:0)
$users = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')
->select(DB::raw(
"SELECT users.*,countries.*, users.id AS 'user_id',
countries.id AS 'country_id'"
);
答案 1 :(得分:0)
最后我欺骗了一个视图,其中我链接了2个表并给出了国家ID的别名。不是一个优雅的解决方案,但它已经奏效我确信有一种正确的方法可以在没有视图的情况下在Laravel中完成,所以我的功能变成了:
$allusers = DB::table('v_users')->get();
return $allusers;