更新IF ELSE条件[Laravel]

rpppsulh  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(130)

我试图找到一种方法来更新'Staff'表,其中列名'kelompok_umur_id'在更新时设置为0。
用例是,在更新选定的下拉菜单显示谁是当前班级的当前导师。但我想实现的是如何更新列名'kelompok_umur_id'设置为0的当前选定导师,如果下拉菜单被选择到其他条目(即其他导师)。因此,这里的条件是只有一个导师可以教一个班级。
https://imgur.com/a/do7YdIb
在我当前的状态下,它正在用所选的类更新当前选定的导师,该导师之前在'kelompok_umur_id'上的值为0,但之前选定的导师仍然具有之前的'kelompok_umur_id'值。
这是我当前的控制器

$request->all();

        $validatedData =KelompokUmur::find($id);

        $validatedData->update([
            'ku_name'        => $request->ku_name,
            'ku_description' => $request->ku_description,
        ]);

        $staff = StaffPPA::where('kelompok_umur_id', 0)->first();
        if($staff){
            $staff->update([
                'kelompok_umur_id' => $id
            ]);
        } elseif ($staff->where('kelompok_umur_id', '!=', $staff->id->first())) {
            $staff->update([
                'kelompok_umur_id' => 0
            ]);
        } else {
            $staff->update([
                'kelompok_umur_id' => 0
            ]);
        }

如果我的问题还不清楚,请告诉我!任何帮助将不胜感激!

eufgjt7s

eufgjt7s1#

首先将所有记录的kelompok_umur_id值设置为0,然后更新特定记录,如下所示:

...
$validatedData->update([
    'ku_name'        => $request->ku_name,
    'ku_description' => $request->ku_description,
]);

$staff = StaffPPA::where('kelompok_umur_id', 0)->first();
if( $staff ) {
    // set kelompok_umur_id to 0 for all rows using
    StaffPPA::query()->update(['kelompok_umur_id' => 0]);

    // now update the record you want as 
    $staff->update(['kelompok_umur_id' => $id]);
}

相关问题