我必须检查用户是否在线(游戏中),如果他不是,然后做另一个检查来执行sql更新。
实际上,我有这两个查询。
$isOnline = DB::connection('mssql')->table('USER_STAT')->where('user_id', $userID)->value('ConnectionStat');
$character = Character::where('acc_id', $userID)->where('Name', $characterName)->firstOrFail();
是否有一种方法,我可以使用union
或join
,以保存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