我有一家公司,我想验证更新请求。到目前为止,我已在update()
操作中验证了请求,但我想将其移至自己的CompanyUpdateRequest
。
在验证中,我检查了税号的唯一性,但我当然希望允许该公司使用相同的税号。
'tax_number' => [
'required',
'string',
Rule::unique('companies')->ignore($company->tax_number),
],
只要将其放在动作中,我已经$company
已经执行此操作:
public function update(Request $request, Company $company)
{
}
我现在的问题是,如何让公司进入CompanyUpdateRequest
?
我知道我可以将公司的ID放在表单中的隐藏字段中,随请求一起发送,从DB中提取公司......但这感觉有点不对劲。有没有人有更好的/另一种方法或想法?
非常感谢。
答案 0 :(得分:1)
您可以通过表单传递任何数据:
<input name="company_id" value="{{ $company->tax_number }}" type="hidden">
然后在CompanyUpdateRequest
班:
Rule::unique('companies')->ignore($request->company_id),
您还可以将此规则更改为:
'companies' => 'unique:companies,company_id,' . $request->company_id,
答案 1 :(得分:1)
使用route()
方法。假设您的路线参数名称为company
-
$this->route('company');
注意:路由方法中的
parameter
方法需要与url route
参数完全相同。在这种情况下 -
Route::post('yourUrl/{company}','SomeController@method');
答案 2 :(得分:1)
您可以使用$this->route('paramName');
Rule::unique('companies')->ignore($this->route('company')),