Sam*_*ong 5 laravel laravel-5.5
我直接说到这里,我想知道是否有可能validation rule在Laravel中传递参数。
这是我的代码:
我需要$product->id将ProductUpdateRequest课程传递给全班。
我已经阅读了一些文章,但无济于事不能将参数传递给它。我的另一种解决方案是不使用验证规则类,而通过使用直接在控制器上进行验证$request->validate[()]。由于我可以访问$product->id控制器上的,因此可以轻松进行验证。但出于好奇是有我的方式来传递$product->id的validation class?
控制器
public function update(ProductUpdateRequest $request, Product $product)
{
$request['detail'] = $request->description;
unset($request['description']);
$product->update($request->all());
return response([
'data' => new ProductResource($product)
], Response::HTTP_CREATED);
}
Run Code Online (Sandbox Code Playgroud)
验证规则
public function rules()
{
return [
'name' => 'required|max:255|unique:products,name'.$product->id,
'description' => 'required',
'price' => 'required|numeric|max:500',
'stock' => 'required|max:6',
'discount' => 'required:max:2'
];
}
Run Code Online (Sandbox Code Playgroud)
任何建议/答案/帮助将不胜感激。
cha*_*fdo 12
您可以从请求中获取解析的绑定
$product = $this->route('product');
Run Code Online (Sandbox Code Playgroud)
在您的rules方法中,您可以使用上述方法获取产品实例。
public function rules()
{
$product = $this->route('product');
return [
'name' => 'required|max:255|unique:products,name'.$product->id,
'description' => 'required',
'price' => 'required|numeric|max:500',
'stock' => 'required|max:6',
'discount' => 'required:max:2'
];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2997 次 |
| 最近记录: |