排序和订单不工作laravel

时间:2017-11-09 09:44:43

标签: laravel sql-order-by

大家好,因为某些原因,当我尝试使用sortby或orderby时,它不起作用。谁能帮我?提前致谢

以下是我尝试的代码,我想获取最新的时间戳,但它无效。

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');
}
}

2 个答案:

答案 0 :(得分:0)

尝试:

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

这将按created_at排序表中的行。

希望这能帮到你!

答案 1 :(得分:0)

如果您想获得最早的created_at,那么查询会更容易

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

以降序获得用户的测试。

以下是“专业”提示:您应在TestUser之间设置relation。并输入你的方法(你的路线看起来像Route::get'(/users/{user}/tests', 'UserTestsController@index');。然后你可以写下你的查询:

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

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