我使用的需要如果Laravel验证,但它不工作。什么是我的错?
public function rules()
{
if (!empty($this->game_id)) {
$game = Game::find($this->game_id);
$game_type = $game->type;
} else {
$game_type = 'sport';
}
return [
'game_id' => 'required',
'platform_id' => 'required_if:' . $game_type . ',==,electronic',
]
}
你不需要整个表达式,正确的格式如下:
return [
'game_id' => 'required',
'platform_id' => 'required_if:columnName:value',
];
试试下面的代码
public function rules()
{
if (!empty($this->game_id)) {
$game = Game::find($this->game_id);
$game_type = $game->type;
} else {
$game_type = 'sport';
}
return [
'game_id' => 'required',
'platform_id' => 'required_if: . $game_type . ,==,electronic',
]
}
对于required_if
语法'field_name' => 'required_if:columnName:value'
。你在做什么是columnName
单引号包裹''
!
我解决它在我自己的规则如下:
if (!empty($this->game_id)) {
$game = Game::find($this->game_id);
$game_type = $game->type;
if($game_type == 'electronic'){
$required = 'required';
} else{
$required = ' ';
}
}
return [
'game_id' => 'required',
'platform_id' => $required,
]