ici est le code de la routedonnées ne stocke pas dans la base de données du contrôleur Laravel 5.4
Route::resource('/catalog', 'CatalogController');
CatalogController.php
public function store(Request $request)
{
$this->validate($request,[
'cat_name'=>'required',
'cat_desc'=>'required',
'short_name'=>'required|min:0|integer',
'category_image'=>'required'
]);
$categories=new Category;
$title=$request->get('cat_name');
$desc=$request->get('cat_desc');
$short_name=$request->get('short_name');
$categories['cat_name']=$title;
$categories['cat_desc']=$desc;
$categories['short_name']=$short_name;
if($request->file('image')){
$file=$request->file('image');
$imgname=$file->getClientOriginalName();
$file->move('images',$imgname);
}
$categories['category_image']=$imgname;
$categories->save();
return redirect('/catalog');
}
est-il un problème dans le code du contrôleur ? Il n'y a aucun problème pour obtenir les données et je les ai déjà vérifiées en retournant chacune des lignes. Mais chaque fois que j'essaie d'insérer des données, il retourne à la même page de création.
et c'est le code de create.blade.php
<div class="row">
<div class="col-lg-20">
<h2 style="color: lightslategrey; padding-left: 30px;">Create Category</h2>
{!!Form::open(['method'=>'POST', 'action'=>'[email protected]','files'=>true ])!!}
{{ csrf_field() }}
<div class="form-group row" style="padding-left: 60px; padding-top: 30px; width: 1350px;">
<label for="cat_name" class="col-2 col-form-label">Category Title :</label>
<input class="form-control" name ="cat_name" type="text" placeholder="Enter Title" required>
</div>
<div class="form-group row" style="padding-left: 60px; padding-top: 10px; width: 1350px;">
<label for="cat_desc" class="col-2 col-form-label">Category Description :</label>
<textarea class="form-control" name ="cat_desc" rows= "3" type="text" placeholder="Enter Description" required></textarea>
</div>
<div class="form-group row" style="padding-left: 60px; padding-top: 10px; width: 1350px;">
<label for="short_name" class="col-2 col-form-label">Short Name</label>
<input class="form-control" name ="short_name" type="text" placeholder="Enter Short Name" required>
</div>
<div class="form-group row" style="padding-left: 60px; padding-top: 10px; width: 1350px;">
<label for="image" class="col-2 col-form-label">Upload Image:</label>
<input class="form-control" name ="image" type="file" placeholder="Choose a Image" required>
</div>
<br/>
<br/>
<div class="form-group ">
<div class="col-lg-8 col-lg-offset-5">
<button class = 'btn btn-success' type="submit" style="width: 200px;">Add Category</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
plz me aider. Je n'ai aucune idée de quel est le problème. Le même code est en cours d'exécution dans un autre contrôleur. Mais cela ne fonctionne pas. Il n'y a aucun problème avec la connexion à la base de données et les modèles.
La redirection indique généralement un échec de validation, vous devriez vérifier la variable '$ errors' dans votre vue. Par exemple, êtes-vous sûr que 'short_name' est un entier? Si oui, pourquoi ne l'appelez-vous pas 'short_number'? – apokryfos
@apokryfos short_name est une chaîne de caractères. c'est comme une étiquette en fait. il n'y a pas d'erreur de validation .. parce que le même code fonctionne bien dans un autre contrôleur. –
''short_name' => 'required | min: 0 | integer',' vous le validez en entier. Si ce n'est pas un entier, la validation échouera. Si la validation échoue, l'action par défaut est de rediriger vers le formulaire avec la variable '$ errors' remplie d'erreurs de validation et la' session() -> old() 'à remplir avec l'ancienne entrée. Vous ne les vérifiez pas dans le code que vous avez partagé – apokryfos