我正在尝试编辑一个表单,其中有一个带有标题,正文和子句的帖子,该子句是唯一的,因此,如果我编辑但不更新它,则表示已被接受
我正在PostRequest验证中尝试此操作
value of x: 7018424
address of x: 6422316
value at 7018424: 7017768
*****
Enter value of x
*****
99
value of x: 7018424
address of x: 6422316
value at 7018424: 99
y: 99
Post控制器上的功能是:
{this.state.markers.map(marker =>
<Marker key={marker._id} position={marker.position}>
<Popup>
<span> <br/> {marker.content}</span>
</Popup>
</Marker>
)}
在我的刀片更新表格上,我也有@method('PUT')
答案 0 :(得分:1)
您应该尝试以下操作:
public function rules()
{
$slug = $this->request->get("slug");
return [
'title' => 'required',
'body' => 'required',
'metaTitle' => 'required',
'metaDescription' => 'required',
'slug' => ['required', Rule::unique('posts')->ignore($slug,'slug')],
];
}
答案 1 :(得分:0)
尝试这个希望能奏效的
public function rules(Request $request)
{
return [
'title' => 'required',
'body' => 'required',
'metaTitle' => 'required',
'metaDescription' => 'required',
'slug' => 'required|slug|unique:posts,slug,' . $this->post,
];
}
答案 2 :(得分:0)
这是我找到的唯一解决方案,使用我自己的验证程序PostRequest不起作用,因此对于更新,我在update函数中进行了验证:
public function update(Request $request, $id) {
$request->validate([
'slug' => 'required|unique:posts,slug,' . $id,
'title' => 'required',
]);
$post = Post::find($id);
$post->fill($request->all());
$post->save();
return redirect()->route('articulos.index');
}
知道为什么会发生这种情况以及如何解决它会很酷,但这目前仍在起作用
答案 3 :(得分:0)
请同时针对Store
和Update
方法进行尝试:
'slug' => [
'required',
'slug',
'unique:posts,slug' . (isset($this->post) ? ',' . $this->post : ' ')
],