如果Laravel需要

问题描述 投票:2回答:3

我使用的需要如果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',
          ]
}
laravel validation required
3个回答
2
投票

你不需要整个表达式,正确的格式如下:

 return [
                'game_id' => 'required',
                'platform_id' => 'required_if:columnName:value',
          ];

1
投票

试试下面的代码

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单引号包裹''


1
投票

我解决它在我自己的规则如下:

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,
       ]
© www.soinside.com 2019 - 2024. All rights reserved.