删除最后日期在 laravel 中的查询

Delete query that has the very last date in laravel

我有一个场景,记录是这样的:

日期

现在我需要做的就是删除最后一个日期。我需要删除具有 2018-01-15.

的查询

我的代码是这样的:

public function deletelatDate()
{
    // $datedel = '2018-04-03';
    $datedel = Attendance::sortBy('date', 'desc')->first();

    // $query->sortBy('date', 'desc')->first();
    DB::table('attendances')->where('date', $datedel )->delete();

    return back()->with('success','Last attendance entries successfully deleted'); 
}

你对我如何解决这个问题有什么建议吗? 谢谢

您可以使用latest获取最新记录:https://laravel.com/docs/5.5/queries#ordering-grouping-limit-and-offset

public function deleteLatest()
{
    // $datedel = today()->format('Y-m-d');     <-- use today's date
    $datedel = '2018-04-03';

    // find the record to delete 
    $toDelete = Attendance::where('date', $datedel)->oldest('date')->first();

    // only perform delete if a record is found
    if($toDelete) {
        $toDelete->delete();
        return back()->with('success','Last attendance entries successfully deleted'); 
    }

    return back()->with('error', 'No attendance entry found for this date: ' . $datedel);
}

使用 orderBy 并在获取第一条记录

后获取列 date
 public function deletelatDate()
 {
      $datedel = Attendance::orderBy('date', 'asc')->first();
       DB::table('attendances')->where('date', $datedel->date )->delete();
      return back()->with('success','Last attendance entries successfully deleted'); 
   }

在发送成功消息之前还要检查查询是否成功