Удалить запрос с самой последней датой в laravel - PullRequest
0 голосов
/ 10 мая 2018

У меня есть сценарий, где запись выглядит так:

дата

  • 2018-01-15

  • 2018-01-16

Теперь мне нужно просто удалить самое последнее свидание. Мне нужно удалить запрос, который имеет 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'); 
}

Есть ли у вас какие-либо предложения о том, как я могу это исправить? Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Используйте 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'); 
   }

Также проверьте успешность запроса перед отправкой сообщения об успехе

0 голосов
/ 10 мая 2018

Вы можете использовать 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...