J'ai un problème mineur avec Laravel 4. J'aimerais utiliser la méthode delete()
sur un enregistrement mais pour une raison quelconque, il ne supprime pas réellement l'enregistrement . destroy()
le fait, donc mon code est bon. De plus, si je passe Teetime::where('date', '=', $formattedDate)->count()
à ma vue, j'en obtiens un qui est correct. Quel est le problème?
if($action=="delete") {
$teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
// for some reason $teetime->delete() doesn't work
Teetime::destroy($teetime->id);
}
destroy
est la méthode correcte pour supprimer directement une entité (via un objet ou un modèle).Exemple:
$teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
$teetime->destroy();
delete
ne peut être appelé que dans le générateur de requêtesExemple:
$teetime = Teetime::where('date', '=', $formattedDate)->delete();
De la documentation:
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
Bien sûr, vous pouvez également exécuter une requête de suppression sur un ensemble de modèles:
$affectedRows = User::where('votes', '>', 100)->delete();
Plus d'informations: http://laravel.com/docs/eloquent