SQLSTATE [23502]:非空违规:7 错误 - laravel
Posted
技术标签:
【中文标题】SQLSTATE [23502]:非空违规:7 错误 - laravel【英文标题】:SQLSTATE[23502]: Not null violation: 7 ERROR - laravel 【发布时间】:2021-09-18 01:57:30 【问题描述】:以下是上传文件的 API。 它显示错误 -
SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column \"Userid\" of relation \"files\" violates not-null constraint\nDETAIL: Failing row contains (7, null, Distance Learning Promo.mp4, null, null, null, 2021-07-07 13:38:07, 2021-07-07 13:38:07). (SQL: insert into \"files\" (\"FileName\", \"updated_at\", \"created_at\") values (Distance Learning Promo.mp4, 2021-07-07 13:38:07, 2021-07-07 13:38:07) returning \"id\")
.
Postman 显示状态500 internal status error
。
我不认为我的 Userid
列是 null 。请帮我提些建议
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Uploads;
use Illuminate\Support\Facades\Auth;
class UploadController extends Controller
public function __construct()
$this->middleware('auth:api');
public function upload(Request $request)
$file=$request->file('file_name');
$fileName=$file->getClientOriginalName();
$folder = uniqid().'-'.now()->timestamp;
$file->storeAs('public/other-document/'.$folder, $fileName);
$filePath = $folder.'/'.$fileName;
$dataToInsert = array();
$dataToInsert['FileName'] = $fileName;
$dataToInsert['FilePath'] = $filePath;
if($request->has('uploadType'))
$dataToInsert['FileType'] = $request->uploadType;
$dataToInsert['uploadedBy'] = Auth::user()->id;
$dataToInsert['Userid'] = $request->bearerToken();
Uploads::create($dataToInsert);
迁移文件
Schema::create('files', function (Blueprint $table)
$table->id();
$table->string('Userid');
$table->string('FileName');
$table->string('FilePath');
$table->string('FileType');
$table->integer('uploadedBy');
$table->timestamps();
);
【问题讨论】:
请检查$dataToInsert['Userid'] = $request->bearerToken();
是否有任何值
@JEJ 它具有价值。即使Userid
列也插入了这样的虚拟值-$dataToInsert['Userid'] =1
,它也会显示相同的错误。
【参考方案1】:
$dataToInsert['Userid'] = $request->bearerToken(); // error is here
if(!$dataToInsert['Userid'])
return "Null value in userID";
检查 $dataToInsert['Userid']
是否持有任何值。
还要确保您在标头中传递 BearerToken
【讨论】:
它具有价值。即使 Userid 列插入了一个像这样的虚拟值 - $dataToInsert['Userid'] =1 ,它也会显示相同的错误。 @MG 检查模型中的可填充项以上是关于SQLSTATE [23502]:非空违规:7 错误 - laravel的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [23000]:完整性约束违规:1048 laravel 5.7
Laravel 7 错误 - SQLSTATE [23000]:完整性约束违规:1048 列 'first_name' 不能为空
SQLSTATE[23000]:Laravel 中的完整性约束违规
Innobyte 插件问题:SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行