Подтвердить что ты не робот

В чем разница между методами destroy() и delete() в Laravel?

У меня небольшая проблема с Laravel 4. Я бы хотел использовать метод delete() в записи, но по какой-то причине он фактически не удаляет запись. destroy(), однако, так что мой код хорош. Кроме того, если я передаю Teetime::where('date', '=', $formattedDate)->count() к моему представлению, я получу тот, который правильный. В чем проблема?

        if($action=="delete") {
            $teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
            // for some reason $teetime->delete() doesn't work
            Teetime::destroy($teetime->id);
        }
4b9b3361

Ответ 1

  • destroy - правильный метод для удаления объекта напрямую (через объект или модель).

Пример:

$teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
$teetime->destroy();
  • delete может быть вызван только в построителе запросов

Пример:

$teetime = Teetime::where('date', '=', $formattedDate)->delete();

Из документации:

Удаление существующей модели по ключу

User::destroy(1);

User::destroy(array(1, 2, 3));

User::destroy(1, 2, 3);

Конечно, вы также можете запустить запрос на удаление для набора моделей:

$affectedRows = User::where('votes', '>', 100)->delete();

Дополнительная информация: http://laravel.com/docs/eloquent