我在这里直截了当,我想知道是否可以在Laravel中的:- initialization(main).
:- set_prolog_flag(double_quotes, chars).
main :-
replace_substring("this is a string","string","replaced string",Result),
writeln(Result).
replace_substring(String,To_Replace,Replace_With,Result) :-
append(First,To_Replace,String),
append(First,Replace_With,Result).
传递参数。
这是我的代码:
我需要将validation rule
传递给$product->id
类。
我已经阅读了一些文章而无济于事,无法将参数传递给它。我的另一个解决方案是不使用验证规则类,并使用ProductUpdateRequest
直接在控制器上进行验证。由于我可以访问控制器上的$request->validate[()]
,因此我可以轻松地进行验证。但出于好奇,我有办法通过$product->id
上的$product->id
吗?
CONTROLLER
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);
}
任何建议/答案/帮助都将受到高度赞赏。
答案 0 :(得分:4)
您可以从请求中获取已解析的绑定
$product = $request->route('product');
在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'
];
}
答案 1 :(得分:0)
这是我在更新时验证唯一产品名称的方式。我将产品ID作为路径参数传递,使用unique
验证规则验证产品名称是否存在于数据库中除 >对于此产品(id)。
class ProductController extends Controller {
public function update(Request $request, $id) {
$this->validate($request, [
'name' => 'required|max:255|unique:products,name'.$id,
]);
// ...
}
}
答案 2 :(得分:0)
对于验证规则中的自定义请求,您可以将 查看:
<input type="hidden" value="product_id">
在验证请求中:
public function rules()
{
$product_id = $this->request->get('product_id');
return [
//
];
}