2017-08-23 22 views
0

すべての注文をフェッチしてステータスと結びたいが、それぞれのステータスは最後にしたい。私はこれのようにしようとしていましたが、私は残りの部分には何も持っていない最初の注文のステータスを取得するだけです。どうすれば修正できますか?Laravel realtionships belongsToMany

static function actualKioskOrders() 
{ 
    $orders = Order::query(); 

    return $orders->with([ 
     'statuses' => function ($query) { 
      $query->orderBy('created_at', 'desc')->first(); 
     } 
    ]); 
} 

答えて

3

このモデルを追加するには、モデルクラスのクエリを実行することをおすすめします。

public function status(){ 
return $this-> belongsToMany(Status::class); 
} 

public function latestStatus() 

    return $this->status()->latest()->first(); 
} 

+0

私は唯一の最後の状態ですべての注文をしたいと思います...私の関係私はbelongsToMAny – wenus

+0

thatsどのようにそれを得る、didntは正しく参照してください。 –

+0

を編集しましたが、次のようにコントローラに書き込むと、$ orders = Order :: actualKioskOrders() - > get(); - 今、私はすべての状態ですべての命令を持っていますが、私は最後の状態でそれぞれのすべての命令を持っています。 – wenus

0

私はそれを行うための簡単な方法は、

$orders = Order::with('status')->orderBy('created_at', 'desc'); 

だろう、あなたはdd($orders);場合は、その対応付け状態ですべての注文を持っていると信じています。

関連する問題