J'utilise requis si dans la validation Laravel, mais cela ne fonctionne pas. quelle est mon erreur?
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',
]
}
3 Réponses :
Vous n'avez pas besoin de l'expression entière, le format correct est le suivant:
return [
'game_id' => 'required',
'platform_id' => 'required_if:columnName:value',
];
Merci pour votre réponse. Le nom de la colonne provient d'une autre table. comment puis-je l'appeler dans cette colonne Nom?
Vous devrez peut-être écrire votre propre règle de validation pour cela.
Essayez le code ci-dessous
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',
]
}
La syntaxe de required_if est 'field_name' => 'required_if: columnName: value' . Ce que vous faites est d'encapsuler le columnName dans '' guillemets simples!
Merci pour votre réponse. Le nom de la colonne provient d'une autre table. comment puis-je l'appeler dans cette colonne Nom?
Que voulez-vous faire exactement?
L'utilisateur crée un tournoi. Quand il / elle sélectionnera un game_id , je vérifierai son type comme game_type à partir de la table de jeu. Le platform_id dans la table de tournoi est requis si le game_type de ce game_id est égal à electronic .
@ShokouhDareshiri avez-vous essayé mon code? J'ai ce que vous essayez de faire, mais ce code fonctionnera, essayez et faites le moi savoir.
Je l'ai résolu dans mes propres règles comme ci-dessous:
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,
]
Bon à savoir :)
Veuillez vérifier ce stackoverflow.com/questions/37777265/… < / a>
votre nom de champ
game_typesemble être dynamique, assurez-vous que c'est un nom d'entrée valideoui, sa valeur est sportive ou électronique. Je voudrais l'exiger lorsque
game_typeest égal àelectronic.