php - 如何过滤模型 laravel 中的自定义属性?
问题描述
//return
{
"data": [
{
"tanggal_lahir": {
"tanggal": "2000-01-29",
"umur": 21
}
//model
protected $appends = ['umur'];
public function getTanggalLahirAttribute($value){
if(@$value){
$umur = Carbon::parse($value)->diffInYears(Carbon::now());
if(@$umur){
return [
'tanggal' => $value,
'umur' => $umur
];
}else{
return $value;
}
}
}
在我的情况下如何查询过滤器umur?################################### ############# ######################
解决方案
数据库不知道该umur
属性,因此您无法在查询构建器中对其进行过滤。
// This won't work because the umur column does not exist in the database
Model::where('umur', 'something')->get();
但是,您可以使用 Collection 的where()
方法来过滤结果或filter()
更精确的过滤。
Model::get()
->where('umur', 'something');
Model::get()
->filter(function ($model) {
return preg_match(pattern, $model->umur);
});
推荐阅读
- sql - 使用 JSON 配置 PostgreSQL 以过滤复合条件
- django - 过滤后从多个表中呈现 Django 模板上的表中的数据
- java - 使用 RequestBuilder 发布文件时出错,403 Forbidden cloudflare
- express - 中间件在上一页不起作用
- excel - 从单元格中提取最后一个子字符串
- postgresql - Liferay 7,Hikari-Pool 连接不可用错误,发生在生产环境中,但不在预生产环境中
- discord - Discord.js 在线会员数量不会立即更新
- python - 将VS代码连接到Jupyter笔记本后,如何在Jupyter笔记本中修复“导入win32api时DLL加载失败”?
- geometry - 确定多边形周围的路径方向而不转弯
- javascript - 如何在 Vue CLI 4 和 Electron 项目中保护环境变量中的 API 密钥