【问题标题】:Laravel validation value in array - livewire数组中的 Laravel 验证值 - livewire
【发布时间】:2021-09-12 05:46:09
【问题描述】:

我有一组在前端循环的状态。我想在后端验证该值是否在数组内。我不断收到所选状态无效的错误。

刀片视图

<select wire:model.defer="state" name="state">
    @foreach($states as $state)
        <option value="{{ $state }}">{{ strtoupper($state) }}</option>
    @endforeach
</select>

控制器(Livewire)

public $states = [
    'sa', 'vic', 'nsw', 'qld', 'act', 'nt', 'wa', 'tas'
];


protected function rules()
{
    $array = [
    'state' => 'required|in:$this->states',
    ];

    return $array;
}

【问题讨论】:

    标签: php laravel laravel-livewire


    【解决方案1】:

    试试这个

    protected function rules()
    {
        $array = [
        'state' => 'required|in:'.implode(',',$this->states),
        ];
    
        return $array;
    }
    

      protected function rules()
        {
            $array = [
            'state' => ['required',Rule::in($this->states)],
            ];
        
            return $array;
        }
    

    参考:https://laravel.com/docs/8.x/validation#rule-in

    【讨论】:

      【解决方案2】:

      或者,如果您只是在寻找一种基本的状态验证方法/功能,那么它实际上只是一个字符串验证助手,而不管框架如何。这里我们使用美国的州代码。原理是一样的。

      /**
       * Validate State code strings
       * 
       * @return boolean
       */
      public function getValidStates($str) {
          $states = array(
              "AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI",
              "ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN",
              "MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH",
              "OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA",
              "WV","WI","WY","AS","GU","MP","PR","VI","FM","MH","PW"
          );
      
          if (in_array(strtoupper($str), $states)) {
              return true;
          }
      
          return false;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-07
        • 2019-12-18
        • 2021-06-12
        • 2021-12-24
        • 1970-01-01
        • 2019-02-21
        • 2019-08-08
        • 1970-01-01
        相关资源
        最近更新 更多