orm中访问器跟关系起冲突怎么解决
查询媒体附件信息
$medium = CasesMedia::query()->find(1);
dd($medium->thumbAttachment);
获取不到数据,后来发现定义了getThumbAttribute
访问器, 在ORM关系中数据被修改了,无法查询到
模型定义
<?php
namespace App\Models;
use Illuminate\Support\Facades\Storage;
class CasesMedia extends BaseModel
{
protected $table = 'cases_media';
protected $guarded = [];
protected $primaryKey = 'id';
/**
* 设置缩略图完整路径
* @param $url
* @return string
*/
public function getThumbAttribute($url): string
{
return config('filesystems.disks.his.driver') == 'local' ? tenant_asset($url) : Storage::disk('his')->url($url);
}
/**
* 设置媒体文件完整路径
* @param $url
* @return string
*/
public function getFilePathAttribute($url): string
{
return config('filesystems.disks.his.driver') == 'local' ? tenant_asset($url) : Storage::disk('his')->url($url);
}
/**
* 缩略图附件
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function thumbAttachment()
{
return $this->belongsTo(Attachment::class, 'thumb', 'file_path')
->where('model_id', $this->cases_id);
}
/**
* 大图附件
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function filePathAttachment()
{
return $this->belongsTo(Attachment::class, 'file_path', 'file_path')
->where('model_id', $this->cases_id);
}
}
推荐文章: