【发布时间】:2017-12-14 14:18:12
【问题描述】:
我对 Laravel 很陌生,并且正在创建一个社交媒体网站作为实践,用户可以像 facebook 一样更新他们的状态,但问题是并非每个帖子都应该附有图片。
所以当我发送没有图片的帖子时,它会给我这个错误:
SQLSTATE[23000]:完整性约束违规:1048 列“图像”不能为空(SQL:插入stories(body,image,user_id,updated_at,created_at)值(My anme os Ololade, , 2, 2017-12-14 14:00:08, 2017-12-14 14:00:08))
这表明图像没有价值。但是,我更新了迁移文件并使图像可以为空,如下所示: $table->binary('image')->nullable(); 它可以工作,并且图像上传成为可选的,但是在检查我的 sql 数据库时,每当我上传图像时,我都看不到 blob 文件,因为图像列下的所有值都是空的。
请问有没有办法覆盖 laravel 给我的这个错误?也就是说:如果没有图像,它应该继续更新状态,或者如果我可以通过我的控制器验证不需要图像数据。
这是我的代码:
public function up()
{
Schema::create('stories', function (Blueprint $table) {
$table->increments('id');
$table->text('body');
$table->binary('image')->
$table->integer('user_id');
$table->timestamps();
});
}
//Migrations file
public function createStory(Request $request){
$image = $request['image'];
$story = new Story();
$story->body = $request['body'];
$story->image = $image;
$request->user()->stories()->save($story);
return response()->json(['message' => 'Your Story has been posted']);
}
//The Function that creates a post
【问题讨论】:
-
在执行查询之前需要先添加条件来检查图片是否为空。
标签: php sql laravel laravel-5.4