我必须检查用户是否在线(在游戏中),如果他不在,那么再进行一次检查以执行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
来保存数据库查询?我认为这不是一个好习惯,而且有一些更好的方法,我在文档中找不到。
我试过这样的事,但没有成功:
$character = Character::where('acc_id', $userID)->where('Name', $characterName)->firstOrFail();
$result = DB::connection('mssql')->table('USER_STAT')->where('user_id', $userID)->union($character)->get();
提前致谢!
答案 0 :(得分:1)
使用您的角色模型中的关系与USER_STAT表的模型,您可以轻松查找所需的内容,以确定是否需要在某处进行更新。
这不会将查询合并为一个,就像加入一样,但它们并不重要,从长远来看,使用ORM将具有更大的优势。
如果您认为必须使用SQL连接,则必须坚持使用querybuilder,但ORM通常是更好的选择