В чем разница между методами 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);
}
32
1 answers
-
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
51
Author: phoops, 2014-03-25 08:29:35