簡體   English   中英

嘗試與With一起使用時按數據透視表排序數據

[英]Order data by pivot table when try to use With

我有桌子Polfzms <- Genes

Polfzm模型有下一個關系

public function gene()
{
    return $this->belongsTo('App\Gene');
}

我需要從Polfzms表中獲取所有數據,並從Genes表中獲取數據,並從數據透視表( Genes )中按name對其進行排序。 我接下來嘗試

$data = Polfzm::with([
    'gene' => function ($query) {
        $query->orderBy('name', 'asc');
    },
])->get();

但不會按名稱排序數據。 我該怎么做?

您可以嘗試在關系定義中進行設置:

Polfzm.php

public function gene()
{
    return $this->belongsTo('App\Gene')->orderBy('name', 'asc');
}

然后在您的控制器中:

$data = Polfzm::with('gene')->get();

如果我理解正確,則可以sortBy使用一個sortBy集合幫助器。

例如:

$data = Polfzm::with('gene')
    ->get()
    ->sortBy(function ($polfzm) {
        return $polfzm->gene->name;
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM