亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅顯示 Laravel 5.8 中最新的產品類別

僅顯示 Laravel 5.8 中最新的產品類別

PHP
一只名叫tom的貓 2021-06-12 11:09:10
我有三個模型:產品、類別、產品類別。一個產品可能有很多類別,有些類別可能有一個父類別。您可以在下面找到相關關系。我可以用foreach()循環顯示所有類別,但我不想這樣做。我只想顯示類別,它必須是最新的。有沒有辦法只顯示當前產品的父類別的最后一個類別?<div class="row">    @foreach ($products as $product)        @foreach ($product->categories as $cat)            {{ $cat->title }}        @endforeach    @endforeach</div>產品型號public function categories(){    return $this->belongsToMany(Category::class);}品類模型public function products(){    return $this->belongsToMany(Product::class);}public function subcategories(){    return $this->hasMany('\App\Category', 'parent_id');}public function parent(){    return $this->belongsTo('\App\Category', 'parent_id');}類別架構$table->increments('id');$table->string('title');$table->integer('parent_id')->nullable();類別_產品架構$table->increments('id');$table->integer('category_id')->unsigned();$table->integer('product_id')->unsigned();
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

您可以在關系上使用查詢構建器,如下所示:

$product->categories->orderBy('id', 'desc')->first();

這將從最近到最舊排序,您可以只獲取第一條記錄。


查看完整回答
反對 回復 2021-06-13
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

在您的模型上使用特定方法

你的類別定義應該是這樣的,對吧?


public function categories() {

    return $this->belongsToMany(Category::class);

}

所以,只需創建另一種方法來檢索最新的。


public function latestCategory() {

    return $this->categories()->latest();

}

如果您需要最舊的類別,則應用相同的方法。


public function oldestCategory() {

    return $this->categories()->oldest();

}

僅使用類別關系定義

如果您不打算創建新方法,也可以應用不同的方法:


$this->categories()->latest();

或者


$this->categories()->oldest();

希望它會幫助你。祝你有美好的一天。


查看完整回答
反對 回復 2021-06-13
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

你可以使用latest()方法

$product->categories->latest()->first();

或者,

$product->categories->orderBy('id', 'desc')->first();


查看完整回答
反對 回復 2021-06-13
  • 3 回答
  • 0 關注
  • 191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號