mysql - Laravel 5.4 中没有默认值时出现错误

标签 mysql laravel laravel-5 laravel-5.4

我收到此错误:

SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into day_schedules (updated_at, created_at) values (2017-03-13 06:56:39, 2017-03-13 06:56:39))

Controller :

if(isset($eventId)){
    //dd($eventId);
    for($i=0; $i<$days;$i++){
        $request->request->add(['user_id'=>$userid]);
        $request->request->add(['event_id'=>$eventId]);
        $dayPostData = Day::create($request->except(['_token', 'submit', 'title','description','firstDate','secondDate', 'days','location','tags','event-img','event_img','sch-e','sch-s','sch-title','sch-desc']));
        $dayId=$dayPostData->id;
        //dd($dayId);
        $countSchedules=count($arr[$i]);
        //$scheduleData = DaySchedule::firstOrNew(['user_id' => Auth::user()->id]);
        for ($j=0;  $j < $countSchedules; $j++){
            //dd($eventId);
            $request->request->add(['user_id'=>$userid]);
            $request->request->add(['event_id'=>$eventId]);
            $request->request->add(['day_id'=>$dayId]);
            $scheduleData = DaySchedule::create([$request->except(['_token', 'submit', 'title','description','firstDate','secondDate' ,'days','location','tags','event-img','event_img'])]);

        }

    }

}

表:

CREATE TABLE `day_schedules` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `user_id` INT(10) UNSIGNED NOT NULL,
    `event_id` INT(10) UNSIGNED NOT NULL,
    `day_id` INT(10) UNSIGNED NOT NULL,
    `time_s` VARCHAR(50) NOT NULL,
    `time_e` VARCHAR(50) NOT NULL,
    `sch_title` LONGTEXT NOT NULL,
    `sch_desc` LONGTEXT NOT NULL,
    `created_at` TIMESTAMP NULL DEFAULT NULL,
    `updated_at` TIMESTAMP NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    INDEX `FK_dayschedules_users` (`user_id`),
    INDEX `FK_dayschedules_events` (`event_id`),
    INDEX `FK_dayschedules_days` (`day_id`),
    CONSTRAINT `FK_dayschedules_days` FOREIGN KEY (`day_id`) REFERENCES `days` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT `FK_dayschedules_events` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT `FK_dayschedules_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
)

最佳答案

MySQL 很可能处于 STRICT 模式。尝试运行 SET GLOBAL sql_mode='' 或编辑 my.cnf 以确保您没有设置 STRICT_ALL_TABLES 或类似内容。

在你的 phpmyadmin 中运行 SELECT @sql_mode 在你的数据库 sql 检查 sql_mode

关于mysql - Laravel 5.4 中没有默认值时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42758139/

相关文章:

php - 在 Blade 模板中捕获 “Trying to get property of non-object”

php - 在 laravel if else 中切换不完美

php - SQL返回尚未注销的事件用户

php - MYSQL&PHP : running an INSERT INTO SELECT query within a PHP while loop, 运行缓慢

mySQL 从所有者历史记录中加入事务所有者

forms - 我应该使用 laravel collective 还是其他组件?

php - 通过带空格的 URL 从 MySQL 选择条目

mysql - Laravel 使用 AND/OR 运算符在多表上搜索多个关键字

php - laravel morphToMany 在数据透视表中有附加字段

php - laravel 中为 sql 查询安排的任务