我正在使用 laravel 创建一个待办事项列表,并且我有一个包含以下各列的表格:
'标题'、'描述'、'已完成'、'id'
每当我向表中添加新任务时,都会自动设置“已完成”列,其默认值为 0,其编码如下:
$table->boolean('completed')->default(0);
该列工作得很好,但是当我尝试为“描述”提供默认值(通过为描述保留空输入)时,它会给出“完整性约束违规:1048 列“描述”不能为空”错误。
我为“描述”列编写的代码如下:
$table->string('description')->default('-');
我尝试了 text() 数据类型,但它给了我同样的错误。
我还尝试对此列使用 nullable() ,但默认值 '-' 不会添加到该列中,并且它返回一个空值。
我用来添加值的表单如下所示:
<form action="/create" class="panel" method="post">
@csrf
<input name="title" type="text" class="title">
<textarea name="description" class="title"></textarea>
<input type="submit" class="submit">
</form>
我的控制器存储方法:
public function createTask(validation $request){
$userId = auth()->id();
$request['user_id'] = $userId;
Task::create($request->all());
return redirect()->route('showList');
}
和表创建语句:
CREATE TABLE `tasks` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`completed` tinyint(1) NOT NULL DEFAULT 0,
`user_id` bigint(20) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`description` text COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ' ',
PRIMARY KEY (`id`),
KEY `tasks_user_id_foreign` (`user_id`),
CONSTRAINT `tasks_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
jeck猫