Php 如何在3个相关表之间创建条件

Php 如何在3个相关表之间创建条件,php,laravel,Php,Laravel,从sql开始, 我正在处理laravel,希望更改连接的用户链接的表的值 我有三张桌子: 考试中的用户(id)外键(用户id) 和 考试(id)验证中的外键(考试id) 如何仅更改已连接用户的验证? 他独自做这件事,所以 我想我们需要 Auth::user() DB::table('verifications')->where([ ['confirmation', 'non'], ['modifier', 'oui'], ])->update(['c

从sql开始, 我正在处理laravel,希望更改连接的用户链接的表的值
我有三张桌子:
考试中的用户(id)外键(用户id)

考试(id)验证中的外键(考试id)
如何仅更改已连接用户的验证? 他独自做这件事,所以 我想我们需要

 Auth::user()
    DB::table('verifications')->where([
    ['confirmation', 'non'],
    ['modifier', 'oui'],
    ])->update(['confirmation' => "oui"]);

你需要质疑关系的存在。但首先你们必须了解模型之间的关系

例如:

如果您需要更多的功能,您可以使用whereHas和orWhereHas方法在has查询中设置“where”条件。这些方法允许您向关系约束添加自定义约束,例如检查注释的内容:

// Retrieve all posts with at least one comment containing words like foo%
$posts = App\Post::whereHas('comments', function ($query) {
    $query->where('content', 'like', 'foo%');
})->get();

更多信息:

如果不使用laravel关系,请使用联接

DB::table('verifications')
    ->leftJoin('exams', 'verification.exam_id', '=', 'exams.id')
    ->leftJoin('users', 'exams.user_id', '=', 'user.id')
    ->where([
        ['verifications.confirmation', 'non'],
        ['verifications.modifier', 'oui'],
        ['users.id', Auth::user()->id]
    ])
    ->update(['verificationsconfirmation' => "oui"]);

您似乎获得了考试id,因此将其添加到更新查询中:尝试如下:

DB::table('verifications')->with($exams)->->whereIn('exam_id', $exams->pluck('id') )->where([ ['confirmation', 'non'], ['modifier', 'oui'], ])->update(['confirmation' => "oui"]);
更新答案: 您已经有了“$EXCESS”变量,因此不需要进一步加入任何表:请尝试以下操作:

DB::table('verifications')->whereIn('verification.exam_id', $exams->pluck('id') )->where([ ['confirmation', 'non'], ['modifier', 'oui'], ])->update(['confirmation' => "oui"]);

如果用户登录,您希望将确认从“非”更新为“oui”。我说的对吗?不,当他创建一个pdf时,我想改变它,当他创建pdf时,我想用'non'来改变他的验证,当他创建pdf时,我想用'oui'来改变这些,这样视图就不再有主题了现在我会发布答案,希望它对你有帮助不,我在使用laravel关系,我不知道我应该做什么!我很高兴能帮助您我尝试过它,它给我错误调用未定义的方法illumb\Database\Query\Builder::with(),是的,这是我想要的,但我不知道如何更改它我只想为将单击按钮的身份验证用户更改值您已经有了“$tests”变量,因此您不需要进一步加入任何表:尝试以下操作:
DB::table('verifications')->where('verification.exam_id',$exames->pull('id'))->where([[['confirmation','non'],['modifier','oui'],])->update(['confirmation'=>“oui”])