【发布时间】:2020-01-05 01:43:32
【问题描述】:
在我的 Laravel 应用程序中,我正在使用 Eloquent 创建一个动态搜索功能,并且我有一个如下所示的客户搜索表单:
customers.search.blade.php 人为的例子
<form method="post" action="{{ route('customers.search') }}">
@csrf
<div class="form-group">
<label for="first_name" class="font-weight-bold">First Name</label>
<div class="input-group">
<div class="input-group-prepend">
<select name="first_name['operator']" class="custom-select">
<option value="%">%</option>
<option value="=">=</option>
<option value="!=">!=</option>
</select>
</div>
<input id="first_name" name="first_name['query']" type="text" class="form-control">
</div>
</div>
</form>
我有一个SearchCustomerRequest (FormRequest) 类,它动态构建验证规则。我已经把它转储了,所以你可以看看生成的规则是什么样子的:
在 search 方法下的 CustomersController 中,我执行以下操作以查看经过验证的请求数组的样子:
class CustomersController extends Controller
{
// ...
public function search(SearchCustomerRequest $searchCustomerRequest)
{
dd($searchCustomerRequest->validated());
}
// ...
}
为了测试这一点,在搜索表单中,我选择了firstname['operator'] 到% 并输入了first_name['query'] 到test 并提交了表单。
我得到以下响应(即空数组):
[]
所以,我转储了整个请求对象 $searchCustomerRequest 以查看参数包中的内容,这就是我所看到的:
如您所见,我的请求是有效的,我的规则也看起来正确,但验证似乎没有按预期工作。
你有什么想法吗?
【问题讨论】:
标签: php laravel validation