我目前正在使用 Spatie 媒體庫,并且創建了自己的自定義類,如下所示:
use Spatie\MediaLibrary\Models\Media as BaseMedia;
class TrybzMedia extends BaseMedia
{
protected $table = 'media';
protected $appends = ['url'];
public function getUrlAttribute()
{
return $this->getUrl();
}
}
我有一個用戶類,我在其中定義了多型關系:
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();
}
我想包含關系定義中的所有代碼。那可能嗎?
uj5u.com熱心網友回復:
您可以嘗試使用 ->limit(1) ,例如:
public function avatar()
{
return $this->morphMany(TrybzMedia::class, 'model')->where('collection_name', '=', 'avatar')->orderBy('put_column_name_here', 'DESC')->limit(1);
}
你可以得到最后的記錄。:)
uj5u.com熱心網友回復:
以下作品:
public function cover()
{
return $this->morphMany(TrybzMedia::class, 'model')
->where('collection_name', '=', 'cover')
->take(1)
->latest();
}
uj5u.com熱心網友回復:
您可以嘗試使用 order by 和 first 來獲取最后一條或第一條記錄。
public function avatar()
{
return $this->morphMany(TrybzMedia::class, 'model')->where('collection_name', '=', 'avatar')->orderBy('put_column_name_here', 'DESC')->first();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/440027.html
