Appel à un membre de la fonction delete() sur un non-objet
Im essayant de supprimer la valeur la forme de page web
mais obtenez une erreur
Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR)
Call to a member function delete() on a non-object
Voici mon code de contrôleur:
public function delete(){
$id=Input::get('id');
$galleries=ForumGallery::find($id);
$galleries->delete();
return Redirect ::route('gallery',$id);
}
Et la fonction de la route:
Route::get('/Gallery/delete',array('uses'=>'GalleryController@destroy','as'=>'destroy'))
comment le résoudre?
- Sans votre code nous n'avons aucun moyen de savoir quel est le problème.
- désolé.....mon controller.php le code est ... public function delete(){$id=Input::get('id'); $galeries=ForumGallery::find($id); $galeries->delete(); return Redirect ::route('galerie',$id);} mes routes.php code isRoute::groupe(array('before' =>'auth'),function() { Itinéraire::get('/Galerie/supprimer",array('utilise'=>'GalleryController@détruire','comme'=>'détruire')); });
- Vérifier si $galeries n'est pas nulle. Seulement si est un objet de ForumGallery, d'essayer de le supprimer.
Vous devez vous connecter pour publier un commentaire.
Vous devriez vérifier les $galeries avant de le supprimer:
Vous avez besoin de vérifier si une galerie a en fait été trouvé. Sinon
find()
retournenull
:Alternativement, vous pouvez également utiliser
findOrFail()
qui va lever une Exception si aucun modèle n'est trouvé et gérer cette exception à l'échelle mondiale (par exemple pour afficher un message d'erreur 404)Modifier
À en juger par les commentaires que vous avez laissé sur l'autre réponse, vous appelez la route par
/Gallery/delete/6
. Si vous voulez faire cela, vous avez besoin de changer votre itinéraire:et méthode de contrôleur:
$id
était incorrect ou n'est pas défini. Comment voulez-vous appeler le contrôleur? comme/Gallery/delete?id=1
?