laravel - 根据 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();
解决方案
这是一个通用的方法,
假设您有三个模型,Course、Stage、Level 当您从Level模型中检索数据时,添加一个访问器,有关更多信息,请单击此处。
例如:
在Level.php
模型上,
public function getColumnNameAttribute($value) // replace ColumnName with column name
{
//write application logic here.
return $value;
}
推荐阅读
- c++ - C++链表节点引用自身
- ajax - 拒绝从 Url 获取 json,因为内容安全策略指令“connect-src”
- python-3.x - 自动终止脚本并重新启动它
- python - python 3.8上的Pygame,OSX不会显示窗口......还是有什么问题?
- flutter - 如何不调整堆栈上的背景图像大小(颤振)
- typescript - TypeScript 编译器 API:查找类型来自哪个文件
- flask - 将值传递给 Bootstrap4 弹出框
- node.js - 使用 sendgrid 时,gmail 中不存在的图像显示为“图像不显示”
- php - PHP:PDO 更新记录不工作(无错误)
- c - 传递给函数时指针值意外更改