php - vista - ¿Cuál es la diferencia entre los métodos destroy() y delete() en Laravel?
operaciones crud en laravel (1)
Tengo un problema menor con Laravel 4. Me gustaría utilizar el método delete()
en un registro, pero por alguna razón, en realidad no elimina el registro. destroy()
sí lo hace, así que mi código es bueno. Además, si paso Teetime::where(''date'', ''='', $formattedDate)->count()
a mi vista obtengo uno que es correcto. ¿Cuál es el problema?
if($action=="delete") {
$teetime = Teetime::where(''date'', ''='', $formattedDate)->firstOrFail();
// for some reason $teetime->delete() doesn''t work
Teetime::destroy($teetime->id);
}
-
destroy
es el método correcto para eliminar una entidad directamente (a través de un objeto o modelo).
Ejemplo:
$teetime = Teetime::where(''date'', ''='', $formattedDate)->firstOrFail();
$teetime->destroy();
-
delete
solo se puede invocar en el generador de consultas
Ejemplo:
$teetime = Teetime::where(''date'', ''='', $formattedDate)->delete();
De la documentación:
Eliminar un modelo existente por clave
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
Por supuesto, también puede ejecutar una consulta de eliminación en un conjunto de modelos:
$affectedRows = User::where(''votes'', ''>'', 100)->delete();
Más información: http://laravel.com/docs/eloquent