【发布时间】:2022-12-16 23:14:42
【问题描述】:
我发现控制器中存在验证问题。
如果您在模型中指定连接,并在控制器中创建验证,则问题看起来像这样。在验证中,指定唯一列,然后模型默认连接。 我的代码 sn-ps。
模型:
protected $connection = 'api';
protected $table = 'pages';
protected $fillable = [
'name', 'title', 'description',
'keywords', 'slug', 'content', 'status',
'sort', 'type'
];
public function sluggable(): array
{
return [
'slug' => [
'source' => 'title'
]
];
}
控制器(资源):
public function store(PagesRequest $request)
{
Pages::create($request->all());
return view('pages.pages.index', [
'pages' => Pages::orderBy('id', 'desc')->paginate(30)
])->with(['success' => true]);
}
页面请求:
public function rules()
{
return [
'name' => 'required|string|min:5|max:255|unique:pages,name,'.@$this->page->id,
'title' => 'required|string|min:5|max:255|unique:pages,title,'.@$this->page->id,
'description' => 'required|string|min:5|max:255',
'keywords' => 'required|string|min:5|max:255',
'slug' => 'unique:pages,slug,'.@$this->page->id
];
}
据我了解,在 rules 方法中有一个对“unique:pages”数据库的请求,这里模型已经不是通过连接而是通过默认连接工作。
如果我删除“唯一”检查,那么一切正常。页面请求:
public function rules()
{
return [
//'name' => 'required|string|min:5|max:255|unique:pages,name,'.@$this->page->id,
//'title' => 'required|string|min:5|max:255|unique:pages,title,'.@$this->page->id,
'description' => 'required|string|min:5|max:255',
'keywords' => 'required|string|min:5|max:255',
//'slug' => 'unique:pages,slug,'.@$this->page->id
];
}
这种情况有什么解决办法吗?
_
【问题讨论】:
标签: laravel validation model connection