2017-02-04 4 views
0

J'essaie d'implémenter le formulaire de création de catégorie sur le backend d'un site que je construis. L'idée est de l'avoir sur la même page que l'index des catégories existantes. À l'heure actuelle, cependant, le système de création ne fait rien. Il ne retourne pas une erreur; rien n'apparaît dans la base de données quand il est interrogé directement; et rien de nouveau n'apparaît sur la page selon la redirection. Parce qu'il n'y a pas de retour, je suis à la recherche de ce qui est différent/faux sur cette route par rapport à la route très similaire que j'ai faite pour le mécanisme de post-création plus tôt. Dans tous les cas, voici le formulaire de création pertinente:Laravel: La méthode 'store' du contrôleur de ressources ne produit aucun résultat, aucune erreur

<form method="POST" action="{{ route('categories.store') }}" data-parsley-validate> 
     <div class="form-group"> 
      <label name="name">Category Name:</label> 
      <input id="name" name="name" class="form-control" required maxlength="255"> 
     </div> 
     <input type="submit" value="Create" class="btn btn-lg btn-block"> 
     <input type="hidden" name="_token" value="{{ Session::token() }}"> 
</form> 

Voici la méthode du 'magasin' de la CategoryController:

public function store(Request $request) 
    { 
     $this->validate($request, array(
      'name' => 'required|max:255' 
     )); 

     $category = new Category; 
     $category->name = $request->name; 
     $category->save(); 

     Session::flash('success', 'Category has been created!'); 

     return redirect()->route('categories.index'); 
    } 

Et voici le fichier routes web.php:

<?php 

Route::get('/', '[email protected]'); 
Route::get('/contact', '[email protected]'); 

Route::resource('posts', 'PostController'); 
Route::resource('categories', 'CategoryController'); 
Route::get('blog/{slug}', '[email protected]')->where('slug', '[\w\d\-\_]+'); 
Route::get('blog', '[email protected]'); 

Auth::routes(); 

Route::get('/home', '[email protected]'); 

?> 

Encore une fois, je ne reçois aucun message d'erreur, c'est juste que le bouton de soumission ne fait rien. Merci d'avance!

Répondre

0

essayer cette

return redirect('categories.index')->withErrors($validation); 

vous pouvez également vérifier

Display errors

+0

autre chose à essayer est d'emballer le tout dans une prise d'essai. – Paul

+0

Le lien ci-dessus ainsi que le lien recommandé n'ont eu aucun effet. RE: la recommandation d'une déclaration try-catch, je suppose que l'idée est d'envelopper l'ensemble de l'action du magasin en cours dans la clause try? – user968270

0

trouvé l'erreur moi-même. En haut de la vue en question, il y a un tableau pour afficher les catégories existantes. La balise de fermeture manquait sa barre oblique que j'ai oubliée. Apparemment, cela a complètement interrompu la fonctionnalité de la forme qui est venue plus tard sans jeter d'erreurs.

La morale de l'histoire est: Si vous travaillez avec un comportement dynamique sur une application web et ne pas avoir d'exceptions, il y a une chance que ce soit parce que l'erreur est dans votre code HTML.