簡體   English   中英

Illuminate\Database\QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category_name' in 'field list' (SQL: insert into `categorie

[英]Illuminate\Database\QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category_name' in 'field list' (SQL: insert into `categorie

Illuminate\Database\QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category_name' in 'field list' (SQL: insert into categories ( category_name , updated_at , created_at ) 值 (fruits, 2022-08-08 10:46 :52, 2022-08-08 10:46:52))

怎么解決??

我的 controller 的名稱是“CategorieController”。這是我的商店 function 在 CategorieController 中稱為 sauvercategorie。

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Categorie;


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');  

我的整個刀片文件。

@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


model 的名稱是類別。 這是我的 model

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Categorie extends Model
{
    use HasFactory;
        protected $fillable = ['category_name'];
}


我的表名是“類別”。 這是我的桌子

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

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');
    }
}

需要幫助解決這個問題,謝謝。

您在遷移中的字段名稱和 model 不同。

將您的 model 從:

protected $fillable = ['category_name'];

進入:

protected $fillable = ['categorie_name'];

發生此錯誤是因為您的類別 model 中有不同的列名。

改變這個,

Schema::create('categories', function (Blueprint $table) {
        $table->id();
        $table->string('categorie_name');
        $table->timestamps();
    });

對此,

Schema::create('categories', function (Blueprint $table) {
        $table->id();
        $table->string('category_name');
        $table->timestamps();
    });

並運行命令

php artisan migrate:refresh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM