【问题标题】:required if in Laravel如果在 Laravel 中则需要
【发布时间】:2019-06-29 00:58:57
【问题描述】:

我在 Laravel 验证中使用 required if,但它不起作用。我的错误是什么?

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',
          ]
}

【问题讨论】:

  • 您的字段名称game_type 似乎是动态的,请确保它是有效的输入名称
  • 是的,它的价值是运动或电子。当game_type 等于electronic 时,我想要求它。

标签: laravel validation required


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

试试下面的代码

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

【讨论】:

  • 感谢您的回复。 columnName 来自另一个表。我如何在这个 columnName 中调用它?
  • 你到底想做什么?
  • 用户创建锦标赛。当他/她选择game_id时,我会从游戏表中检查它的typegame_type。如果game_idgame_type 等于electronic,则需要锦标赛表中的platform_id
  • @ShokouhDareshiri 你试过我的代码了吗?我得到了你想要做的事情,但是这段代码可以试一试,让我知道。
【解决方案3】:

我用自己的规则解决了它,如下所示:

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,
       ]

【讨论】:

  • 很高兴知道:)
猜你喜欢
  • 1970-01-01
  • 2016-12-18
  • 2019-05-18
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多