sortBy和orderBy在我的Laravel代码中不起作用

hc8w905p  于 2023-02-14  发布在  其他
关注(0)|答案(2)|浏览(143)

我想获取最新的时间戳。由于某种原因,当我尝试使用sortByorderBy时,它不起作用。有人能帮助我吗?
下面是我尝试的代码:

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

vcirk6k61#

试试看:

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

这将按created_at对表中的行进行排序。
希望这对你有帮助!

hzbexzde

hzbexzde2#

如果您想获取最早的created_at,可以更容易地查询如下内容

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

以按降序获取用户的测试。
这里有一个“亲”提示:您应该在TestUser之间设置一个relation,并键入hint您的方法(您的路由看起来像Route::get'(/users/{user}/tests', 'UserTestsController@index');),然后您可以将查询编写为:

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

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

相关问题