Hor*_*Kol 2 validation laravel eloquent laravel-5.4
我想验证用户是否在地址表单中选择了一个有效的状态值。为了在开发过程中简单起见,我还没有让他们选择国家。
状态信息位于具有以下字段的表中:
id
country_id
abbreviation
name
Run Code Online (Sandbox Code Playgroud)
该表单使用带有名称的 select 元素address[state]并将状态 ID 作为选定值发送。
我第一次尝试验证规则是:
'address.state' => [
'required',
Rule::exists('shop_address_states')->where(function ($query) {
$query->where('country_id', 1);
}),
],
Run Code Online (Sandbox Code Playgroud)
但我得到一个Unknown column 'address.state'错误。
当我尝试让它使用 ID 列时:
'address.state' => [
'required',
Rule::exists('shop_address_states,id')->where(function ($query) {
$query->where('country_id', 1);
}),
],
Run Code Online (Sandbox Code Playgroud)
我收到一个undefined offset: 1错误。
我想我有点'state' => 'exists:states,abbreviation'从https://laravel.com/docs/5.4/validation#rule-exists混搭规则,因为我无法在其他地方找到示例。
我如何让这个规则起作用?
如果您没有明确说明列名,Laravel 将采用数据索引中的列名。在这种情况下,address.state。
当您尝试添加列名时,您并没有将它作为第二个参数传递给它自己。请尝试以下操作:
Rule::exists('shop_address_states', 'id')->where(function ($query) {
$query->where('country_id', 1);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |