php - Laravel 中关系对象的访问器
问题描述
这是我的类别模型:
/**
* @var array
*/
protected $guarded = ['id'];
public function media()
{
return $this->belongsTo(Media::class);
}
public function getMediaAttribute()
{
return 'Foo';
return ( ! is_null($this->media))
? $this->media
: '/products/default/thumb.jpg';
}
当我在路由中调用它以获得这样的所有对象时:
return \App\Category::with('media')->get();
似乎访问器不起作用,我无法在类别的媒体对象中获得“Foo”
解决方案
您可以使用withDefault()
:
public function media()
{
return $this->belongsTo(Media::class)
->withDefault(['url' => '/products/default/thumb.jpg']);
}
当没有结果时,它返回一个Media
具有给定属性的实例。
推荐阅读
- c# - Word interop C# Range 中的非中断连字符
- amazon-web-services - 需要在 Spring Boot 属性文件中配置 AWS 区域
- c# - SSRS 报告未生成
- image - 如何在高分辨率图像中提取对象?
- javascript - 以编程方式更改输入时,on change 的解决方案不起作用
- powershell - 无法在 Azure DevOps Repo 上使用 Powershell 模块
- c# - Visual Studio 发布错误不包括 sqllite 文件
- python - 如果列行中的值为零,则删除 pandas 数据框中所有列中的所有行
- typescript - TSLint no-inline-comments
- java - 第二个 for 循环如何像在第一个 for 循环内一样工作?