SQLSTATE [HY000]: общая ошибка: 1364 Поле 'image' не имеет значения по умолчанию - начальный уровень 5.8 - PullRequest
0 голосов
/ 02 октября 2019

SQLSTATE [HY000]: общая ошибка: 1364 Поле 'image' не имеет значения по умолчанию (SQL: вставить в programs (title, description, updated_at, created_at()*

Я использую Laravel 5.8, и у меня возникла эта проблема, когда я пытаюсь заполнить данные в StudentsTableSeeder, используя php artisan db:seed
, почему он говорит, что 'image' не имеет значения по умолчанию? но на самом деле я даю ему значение!


это мой файл StudentTableSeeder

<?php

use App\Models\Degree;
use App\Models\Program;
use App\Models\Student;
use Illuminate\Database\Seeder;

class StudentsTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    $program1 = Program::create([
        'title' => 'علوم الصحة',
        'description'   =>  'يوفر تجربة عملية في تجهيز طلابنا للعمل في عالم الرعاية الصحية الناشئة',
        'image' =>  'uploads/programs/program1.png'
    ]);

    $program2 = Program::create([
        'title' => 'إدارة الأعمال',
        'description'   =>  'يوفر معرفة شاملة في نظريات الأعمال والتطبيق على سوق اليوم.',
        'image' =>  'uploads/programs/program2.png'
    ]);

    $program3 = Program::create([
        'title' => 'علوم الحاسوب',
        'description'   =>  'يوفر الأساس والأداوت التقنية للتطبيق في صناعة التكنولوجيا المتطورة.',
        'image' =>  'uploads/programs/program3.png'
    ]);

    $program4 = Program::create([
        'title' => 'برنامج التعليم',
        'description'   =>  'يوفر برنامج الدرجة التنافسية، لإعداد معلمين ذوي مهارات عالية.',
        'image' =>  'uploads/programs/program4.png'
    ]);


    $student1 = Student::create([
        'name' => 'صالح محمد',
        'country'   =>  'فلسطين',
        'program_id'   =>  $program2->id,
        'image' =>  'uploads/students/student1.png',
    ]);

    $student2 = Student::create([
        'name' => 'محمد الجمال',
        'country'   =>  'تركيا',
        'program_id'   =>  $program3->id,
        'image' =>  'uploads/students/student2.png',
    ]);

    $student3 = Student::create([
        'name' => 'عبدالله مخدوم',
        'country'   =>  'لبنان',
        'program_id'   =>  $program3->id,
        'image' =>  'uploads/students/student3.png',
    ]);

    $student4 = Student::create([
        'name' => 'يوسف أبو بكر',
        'country'   =>  'المغرب',
        'program_id'   =>  $program2->id,
        'image' =>  'uploads/students/student4.png',
    ]);

    $student5 = Student::create([
        'name' => 'محمد ماهر',
        'country'   =>  'الكويت',
        'program_id'   =>  $program1->id,
        'image' =>  'uploads/students/student5.png',
    ]);

    $student6 = Student::create([
        'name' => 'هلا الزيات',
        'country'   =>  'سوريا',
        'program_id'   =>  $program4->id,
        'image' =>  'uploads/students/student6.png',
    ]);


    $degree1 = Degree::create([
        'name'  =>   'درجة البكالوريوس'
    ]);

    $degree2 = Degree::create([
        'name'  =>   'درجة الماجستير'
    ]);

    $degree3 = Degree::create([
        'name'  =>   'درجة الدكتوراة'
    ]);

    $degree4 = Degree::create([
        'name'  =>   'درجة الزمالة'
    ]);

     $program1->degrees()->attach([$degree1->id, $degree4->id]);
     $program2->degrees()->attach([$degree2->id, $degree1->id, $degree4->id]);
     $program3->degrees()->attach([$degree1->id, $degree3->id]);
     $program4->degrees()->attach([$degree2->id]);

}
}

и это модель программы

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\app\Models\Traits\CrudTrait;

class Program extends Model
{
use CrudTrait;

protected $table = 'programs';
// protected $primaryKey = 'id';
// public $timestamps = false;
protected $guarded = ['id'];
protected $fillable = [
    'title', 'description', 'image'
];
// protected $hidden = [];
// protected $dates = [];

}

1 Ответ

0 голосов
/ 02 октября 2019

Вы проверили, правильно ли указано имя столбца image в таблице студентов?

$table->string('image');

, убедитесь, что это image не imaeg

...