我目前使用的是Spatie媒体库,并且创建了自己的自定义类,如下所示:
use Spatie\MediaLibrary\Models\Media as BaseMedia;
class TrybzMedia extends BaseMedia
{
protected $table = 'media';
protected $appends = ['url'];
public function getUrlAttribute()
{
return $this->getUrl();
}
}
我有一个User类,其中定义了一个多态关系:
public function avatar()
{
return $this->morphMany(TrybzMedia::class, 'model')->where('collection_name', '=', 'avatar');
}
可能会有多张图片上传,所以我试图实现的是得到关系的最后记录。我尝试了以下没有运气:
public function avatar()
{
return $this->morphMany(TrybzMedia::class, 'model')->where('collection_name', '=', 'avatar')->last();
}
我想把所有的代码都包含在关系的定义中,可以吗?
4条答案
按热度按时间nsc4cvqm1#
可以尝试使用-〉limit(1),例如:
您可以获取最后一条记录。:)
dgenwo3n2#
以下作品:
nhjlsmyf3#
您可以尝试使用order by和first来获取最后一条或第一条记录。
ou6hu8tu4#
我想这个能胜任吧?
参见文档:多个中的一个(多态)