首页 > 解决方案 > 根据 laravel 中的 wherehas 条件更改查询结果值

问题描述

我正在使用 laravel

我想根据特定条件更改列的值。如果在 wherehas 中满足条件,那么将特定列的值更改为 1 让我们说。我该怎么做。如果我可以在 wherehas 函数中调用模型中的函数来更改值,我该怎么做?

我可以使用 2 for 循环迭代结果集并更改它,但是我想通过在检索数据时更改值来降低复杂性

Course::with('stages','stages.levels')->whereHas('stages.levels', function($query)use ($levelsarray){
            $query->wherenotIn('id', $levelsarray);
            here I want to change a column value in table levels
        })->first();

标签: laraveliteration

解决方案


这是一个通用的方法,

假设您有三个模型,Course、Stage、Level 当您从Level模型中检索数据时,添加一个访问器,有关更多信息,请单击此处

例如:

Level.php模型上,

public function getColumnNameAttribute($value) // replace ColumnName with column name
{
    //write application logic here.

    return $value;
}

推荐阅读