2017-08-17 5 views
0

私は完全な解決策を見つけることができません。OrderBYコントローラー上のモデル関係eloquantについて

コントローラー:

$servicerequest = ServiceRequest::selectRaw('count(id) as totalservice,max(created_date) as last_service,service_provider_id,id,service_id,account_id,service_request,created_date')->with(['account' => function($first) use ($keyword) { 
         $first->select('id', 'restaurant_name')->orderBy('restaurant_name', 'DESC'); 
        }]) 
       ->with(['serviceProvider' => function($query) use ($keyword) { 
         $query->select('id', 'company_name'); 
        }])->groupBy('account_id') 
       ->orderBy('company_name', 'DESC') 
       ->paginate(100); 

私はモデル関係テーブルのフィールドとメインテーブルのデータにその旨のことで順序を必要としています。それは1対1の関係であるため、内部で注文する必要はありません。

私はリレーションデータについてorderby全体を必要としています。

コレクション:

enter image description here

答えて

0

あなたが使用ORDERBY関係テーブルにあなたの関係テーブルに参加しなければなりません。

このコードを試すことができます。

$servicerequest = ServiceRequest::selectRaw('count(id) as totalservice, max(created_date) as last_service,service_provider_id,id,service_id,account_id,service_request,created_date, SERVICEPROVIDERTABLE.company_name') 
             ->join('serviceProvider', 'SERVICEPROVIDERTABLE.id', '=', 'SERVICEREQUESTTABLE.service_provider_id') 
             ->with([ 
              'account' => function ($first) use ($keyword) { 
               $first->select('id', 'restaurant_name') 
                 ->orderBy('restaurant_name', 'DESC'); 
              } 
             ]) 
             //->with([ 
             // 'serviceProvider' => function ($query) use ($keyword) { 
             //  $query->select('id', 'company_name'); 
             // } 
             //]) 
             ->groupBy('account_id') 
             ->orderBy('SERVICEPROVIDERTABLE.company_name', 'DESC') 
             ->paginate(100); 

これはうまくいきたいです。

+0

ありがとうございます!しかし、これは方法ではありません。私は同じ方法で解決策を求めています。私はすでに私たちがそれを行うことができます参加で知っている。ララヴェルやORMについて知っていれば、それからあなたのアイデアを投稿してください。 これは評判の向上のためのあなたの答えは、残念私はできません:)? –

+0

それを心配しないでください、私は評判のために来ていませんが、問題を得るために来て、私はそれを解決するのを助けることができます。私はlaravelでそれができないと思います。私はすでにあなたのような問題があるからです。 – Ramadhan

+0

それでは、あなたには解決策がないと言います。私はそれのために参加する必要がありますか? –

関連する問題