在Laravel 5.2中联合/连接数据库和eloquent模型查询


Unite/join Database and Eloquent's model query in Laravel 5.2

我必须检查用户是否在线(游戏中),如果他不是,然后做另一个检查来执行sql更新。

实际上,我有这两个查询。

$isOnline = DB::connection('mssql')->table('USER_STAT')->where('user_id', $userID)->value('ConnectionStat');
$character = Character::where('acc_id', $userID)->where('Name', $characterName)->firstOrFail();

是否有一种方法,我可以使用unionjoin,以保存DB查询?我认为这不是一个好的做法,有一些更好的方法,我在文档中找不到。

我试过这样做,但是没有成功:

$character = Character::where('acc_id', $userID)->where('Name', $characterName)->firstOrFail();
$result = DB::connection('mssql')->table('USER_STAT')->where('user_id', $userID)->union($character)->get();

提前感谢!

使用字符模型与USER_STAT表的模型之间的关系,您可以轻松查找所需的东西,以确定是否需要在某个地方进行更新。

雄辩的关系

这不会像使用连接那样将查询合并为一个查询,但它们并不繁重,并且从长远来看,充分使用ORM将具有更显着的优势。

如果您认为必须使用sql连接,则必须坚持使用querybuilder,但ORM通常是更好的选择

Query Builder Joins