如何在laravel中为输入值添加前缀并将其传递到后端



这是我的输入字段:

<div class="col-md-4 form-group">
<label class="form-label fw-bold text-muted" >Em Code</label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">xyz.</div>
</div>
<input class="form-control" name="em_code" type="number" value="{{ old('em_code') }}">
@error('em_code')
<span class="text-danger">{{ $message }}</span>
@enderror
</div>
</div>

正如预期的那样,在我的控制器中,只返回传递的数字

public function store(Request $request)
{
dd($request->em_code);
}

现在我希望它返回xyz的值。####

当然,我可以使用以下将其连接到我的控制器中

'em_code' => 'bZm.'.$request->em_code,

但我希望它与刀片输入文件连接,因为我将验证唯一。但在我的数据库中,它被存储为bZm.1111。因此,在输入11111的情况下,验证规则将不会通过任何异常。但是,mySql将返回错误,因为此列在那里标记为唯一

因此,为了对唯一的em_code进行正确的检查,我试图将其从输入中连接起来,并将其作为字符串传递给控制器。

欢迎您为这个问题提供其他解决方案。

谢谢!

在表单请求类中,您可以准备验证。

https://laravel.com/docs/9.x/validation#preparing-验证输入

protected function prepareForValidation()
{
$this->merge([
'em_code' => 'bZm.' . $this->em_code,
]);
}

最新更新