Exception de requête de base de données Illuminate
SQLSTATE[42S22] : 1054 Nom de colonne inconnu 'category_name' dans 'field list' (SQL : insérer dans categories
(category_name
, updated_at
, created_at
) valeurs (fruits, 2022-08-08 10:46:52, 2022-08-08 10:46 : 52) )
Comment le résoudre ?
Mon nom de contrôleur est "CategorieController". Il s'agit de la fonction de magasin savecategorie dans mon CategorieController.
namespace AppHttpControllers; use IlluminateHttpRequest; use AppModelsCategorie; class CategorieController extends Controller { // public function ajoutercategorie(){ return view('admin.ajoutercategorie'); } public function sauvercategorie(Request $request){ $validatedData = $request->validate([ 'category_name' => 'required | max:255', ]); $categorie = Categorie::create($validatedData); return redirect('/ajoutercategorie')->with('status', 'La catégorie' .$categorie->category_name.'a été ajoutée avec succès');
Mon fichier lame complet.
@extends('layouts.appadmin') @section('title') Ajouter une catégorie @endsection @section('contenu') <div class="row grid-margin"> <div class="col-lg-12"> <div class="card"> <div class="card-body"> <h4 class="card-title">Ajouter une catégorie</h4> @if (Session::has('status')) <div class="alert alert-success"> {{Session::get('status')}} </div> @endif @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form class="cmxform" id="commentForm" method="post" action="{{ route('categories.sauvercategorie') }}"> @csrf <fieldset> <div class="form-group"> <label for="cemail">Nom de la catégorie</label> <input id="cemail" class="form-control" type="text" name="category_name" > </div> <input class="btn btn-primary" type="submit" value="Ajouter"> </fieldset> </form> </div> </div> </div> </div> @endsection @section('scripts') {{--<script src="Administrateur/js/form-validation.js"></script> <script src="Administrateur/js/bt-maxLength.js"></script>--}} @endsection
Le nom du modèle est Catégorie. C'est mon modèle
namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Categorie extends Model { use HasFactory; protected $fillable = ['category_name']; }
Le nom de ma table est "catégories". C'est ma montre
use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreateCategoriesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('categories', function (Blueprint $table) { $table->id(); $table->string('categorie_name'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('categories'); } }
Besoin d'aide pour le résoudre, merci.
Dans la migration et le modèle, vos noms de champs sont différents.
Changez votre modèle en :
changé en :