我对此StoreRequest进行了一些关于嵌套模型的验证 恩。 $ rules [' replica.host'] =' required&#39 ;;
public function rules()
{
$rules = [
'host' => 'required',
'port' => 'required',
'user' => 'required'
];
if($this->route('database')){
$db = $this->route('database');
$rules['name'] = 'required|unique:databases,name,'. $db->id;
$rules['database'] = 'required|unique_with:databases,host,' . $db->id;
}else{
$rules['name'] = 'required|unique:databases';
$rules['database'] = 'required|unique_with:databases,host';
if($this->has('replica.name')){
$rules['replica.name'] = 'required|unique:databases';
$rules['replica.database'] = 'required|unique_with:databases,host';
$rules['replica.host'] = 'required';
$rules['replica.port'] = 'required';
$rules['replica.user'] = 'required';
}
}
return $rules;
}
我在数据库和副本(数据库)上有一对一的关系, 但在商店我得到这个例外:
SQLSTATE [42S22]:未找到列:1054未知列' replica.name'在' where子句' (SQL:选择count(*)作为
databases
的聚合,其中replica
。name
=演示副本)
任何帮助?
答案 0 :(得分:1)
这是因为laravel使用点.
表示嵌套值,但我读了这句话
laravel 5.3中不再存在此问题, 我们替换属性名称中的点 用 - >在开始任何检查之前。
请在此处阅读:https://github.com/laravel/framework/issues/14211
如果可能,请将replica.name
替换为replica_name
,将其替换为<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Separator Grid.Column="0" Margin="5"/>
<TextBlock Text="Hello" Grid.Column="1"/>
<Separator Grid.Column="2" Margin="5"/>
</Grid>
。与laravel嵌套检查不冲突。