![](/img/trans.png)
[英]Laravel cannot echo softdeletes field error Carbon Data Missing
[英]Laravel unique validation with softdeletes data
我想使用 Laravel 唯一验证器来实现软删除。 我已经尝试了很多次,但它会产生这样的错误。 我应该怎么办? 提前致谢。 这是我的代码示例。
public function store(Request $request)
{
$request->validate([
'nama' => 'required',
'nim' => [
'required',
'size:10',
Rule::unique('students')->where(function ($query) {
return $query->where('deleted_at', NULL);
})
],
'email' => 'required|email',
]);
Student::create([
'major_id' => $request->major_id,
'nama' => $request->nama,
'slug' => Str::of($request->nama)->slug('-'),
'nim' => $request->nim,
'email' => $request->email,
]);
return redirect('/students')->with('status', 'Success');
}
您收到的错误来自数据库中的约束。 您在代码中所做的任何事情都无法反驳。 数据库不关心软删除。
您需要先从数据库中删除约束,然后使用您的解决方案或这篇文章中的解决方案check-if-name-is-unique-among-non-deleted-items-with-laravel-validation
要删除约束,请运行此查询
ALTER TABLE students DROP CONSTRAINT students_nim_unique;
最佳做法是创建一个运行此查询的新迁移。 小心down()
方法,如果表中有重复的 nim(软删除与否),您将无法恢复约束
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.