[英]SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: problem
public function store(Request $request)
{
$this->validate($request,[
'title' => 'string|required',
'summary' => 'string|nullable',
'is_parent' => 'sometimes|in:1',
'parent_id' => 'nullable',
'status' => 'nullable|in:active,inactive'
]);
$data=$request->all();
$slug=Str::slug($request->title);
$count=Category::where('slug',$slug)->count();
if($count>0){
$slug=$slug.'-'.date('ymdis').'-'.rand(0,999);
}
$data['slug']=$slug;
// return $slug;
$status=Category::create($data);
if($status){
request()->session()->flash('success','Kategori başarıyla eklendi');
}
else{
request()->session()->flash('error','Kategori eklenirken hata oluştu');
}
return redirect()->route('category.index');
}
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'active' for column kintshop
. SQLSTATE [22007]:无效的日期时间格式:1366 不正确的 integer 值:列kintshop
的“活动”。 categories
. categories
。 parent_id
at row 1 (SQL: insert into categories
( title
, summary
, is_parent
, parent_id
, photo
, status
, slug
, updated_at
, created_at
) values (dsadasd,第 1 行的parent_id
(SQL:插入categories
( title
、 summary
、 is_parent
、 parent_id
、 photo
、 status
、 slug
、 updated_at
、 created_at
)值(dsadasd、
dsadasdas沙达斯达斯
, 1, active, /storage/photos/1/category1.png, active, dsadasd, 2021-06-04 13:09:04, 2021-06-04 13:09:04)) , 1, 活动, /storage/photos/1/category1.png, 活动, dsadasd, 2021-06-04 13:09:04, 2021-06-04 13:09:04))Here is my schema这是我的架构
**Schema::create('categories', function (Blueprint $table) { $table->id(); $table->string('title'); $table->string('slug')->unique(); $table->string('photo')->nullable(); $table->boolean('is_parent')->default(true); $table->unsignedBigInteger('parent_id')->nullable(); $table->enum('status',['active','inactive'])->default('active'); $table->foreign('parent_id')->references('id')->on('categories')->onDelete('SET NULL'); $table->mediumText('summary')->nullable(); $table->timestamps(); });**
Error is clear.错误很清楚。 Request
contain parent_id
value active
but migration
file says parent_id
is foreign key
you must pass accurate value to create method. Request
包含active
的parent_id
值,但migration
文件说parent_id
是foreign key
,您必须传递准确的值才能创建方法。
parent_id
data type is Big Integer
parent_id
数据类型为Big Integer
See your $request->all()
data查看您的$request->all()
数据
[▼ "_token" => "LrDekkz85cys4ZFx4vCFmy0VPHwFCh1u7aPIcEqq"
"title" => "dsadasd"
"summary" => "<p>dsadasdas</p>"
"files" => null
"is_parent" => "1"
"parent_id" => "active"
"photo" => "/storage/photos/1/category1.png"
"status" => "active" ]
So better update validation rule for parent_id
contain only integer所以更好地更新parent_id
的验证规则只包含 integer
Table column 'parent_id' is bigInteger but you have 'active' (string) in your request, so, change data type on DB or update validation rules.表列“parent_id”是 bigInteger,但您的请求中有“活动”(字符串),因此,更改数据库上的数据类型或更新验证规则。
TIP: don't use '$request->all()', is not safe.. you can use instead '$request->only('title', 'summary', 'status'.....)'.提示:不要使用 '$request->all()',不安全.. 你可以使用 '$request->only('title', 'summary', 'status'.....)' . This is a safe practice to retrieve params from request这是从请求中检索参数的安全做法
$this->validate($request,[
'title' => 'string|required',
'summary' => 'string|nullable',
'is_parent' => 'sometimes|in:1',
'parent_id' => 'nullable',
'status' => 'nullable|in:active,inactive'
]);
This is wrong...$this->validate([]) accept the rules first as argument, not the request.这是错误的...... $this->validate([]) 首先接受规则作为参数,而不是请求。 Maybe you must do也许你必须做
$request->validate([
'title' => 'string|required',
'summary' => 'string|nullable',
'is_parent' => 'sometimes|in:1',
'parent_id' => 'nullable',
'status' => 'nullable|in:active,inactive'
]);
or或者
$validation = Validator::make($request->all(),[rules]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.