簡體   English   中英

Eloquent OrderBy 和 Take 在 hasMany 關系中不起作用

[英]Eloquent OrderBy and Take not working in a hasMany relationship

我試圖限制在 hasMany 關系中返回的條目數,這在使用 orderBy 或 take 時工作正常。 但是,當它們一起使用時,結果似乎是錯誤的。

這個查詢有什么問題?

預期結果 = 2 行數據

實際結果 = 2 行數據

public function manual_ticket_log(){
    return $this->hasMany('App\ManualTicketLog','manual_ticket_id','id')->orderBy('id','desc');
}

預期結果 = 1 行數據

實際結果 = 1 行數據

public function manual_ticket_log(){
    return $this->hasMany('App\ManualTicketLog','manual_ticket_id','id')->take(1);
}

--這里有錯誤--

預期結果 = 1 行數據

實際結果 = 返回空數組

  public function manual_ticket_log(){
        return $this->hasMany('App\ManualTicketLog','manual_ticket_id','id')->orderBy('id','desc')->take(1);
    }

intead hasMany 你可以使用 HasOne 來只獲取一條記錄:

public function manual_ticket_log(){
        return $this->hasOne('App\ManualTicketLog','manual_ticket_id','id')->orderBy('id','desc');
    }

hasOne 只會得到第一個結果。

暫無
暫無

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

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