2017-11-09 19 views
0

私がsortbyまたはorderbyを使用しようとすると何人かの理由でこんにちは、それは動作しません。誰でも助けてくれますか?事前に感謝しますSortbyとorderby not working laravel

ここで私が試したコードですが、私は最新のタイムスタンプを取得したいが動作しません。

public function getTest($id){ 
$data = test::where('user_id',$id)->sortByDesc('created_at')->get(); 
//I also tried doing this 
$data = test::where('user_id',$id)->orderBy('created_at', 'desc')->get(); 
    if(count($data)>0){ 
     return view('test',compact('data')); 
    }else{ 
    return view('test'); 
} 
} 
+0

てみてください。: - > [並べ替え( 'created_atと '$データ=テスト::( 'USER_ID'、$ ID)と(あなたのルートはRoute::get'(/users/{user}/tests', '[email protected]');次のようになります。次にのようなクエリを書くことができ、あなたの方法をtypehint '、' desc ') - > first(); ' –

+0

「動作しません」以外のエラーメッセージはありますか? – Amarnasan

+0

@HirenGohelうまく動作しますが、なぜ私の仕事はできませんか?以前は、正常に動作していました – Dkna

答えて

0

試してみてください。

$data = test::where('user_id', $id)->orderBy('created_at', 'desc')->first(); 

これはcreated_atによって、テーブル内の行を注文します。

希望すると、これが役立ちます。

+0

を投稿できますか?しかし、これは最初の行だけを返します。 – Amarnasan

+0

それは1行だけを取得します。 – Rits

0

あなたが最も古いcreated_atを取得したい場合は、降順で、ユーザーのテストを取得するために

$data = test::where('user_id', ,'=', $id)->oldest(); 

のように照会することが容易になります。

ここには「プロ」のヒントがあります:をTestUserの間に設定する必要があります。 。

public function index(User $user) 
    { 
     $data = $user->tests()->oldest(); 

     return view('tests.index') 
      ->with('data', $data); 
    }