在Laravel 5.2中统一/加入数据库和Eloquent的模型查询

时间:2016-07-04 19:43:22

标签: php sql sql-server laravel orm

我必须检查用户是否在线(在游戏中),如果他不在,那么再进行一次检查以执行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来保存数据库查询?我认为这不是一个好习惯,而且有一些更好的方法,我在文档中找不到。

我试过这样的事,但没有成功:

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用您的角色模型中的关系与USER_STAT表的模型,您可以轻松查找所需的内容,以确定是否需要在某处进行更新。

Eloquent Relationships

这不会将查询合并为一个,就像加入一样,但它们并不重要,从长远来看,使用ORM将具有更大的优势。

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

Query Builder Joins