@springimport

Нормально ли такое правило валидации?

Обычно в моделях одноуровневые данные. Сложности возникают с несколькими уровнями.

Нормален ли такой метод валидации?
<?php

class Items
{
    public function rules()
    {
        return [
            [['items'], 'checkItem']
        ];
    }

    protected function checkItem()
    {
        $status = (is_array($this->items) || is_object($this->items)) && $this->items;

        if ($status) {
            foreach ($this->items as $item) {
                $itemModel = new Item;
                
                $status = ($itemModel->load($item, '') && $itemModel->validate());

                if (!$status) {
                    break;
                }
            }
        }

        return $status;
    }
}
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. Вместо
public function rules()
    {
        return [
            ['items'], 'checkItem'
        ];
    }

наверное
public function rules()
    {
        return [
            [['items'], 'checkItem']
        ];
    }

2. function checkItem() у Вас всегда возвращает одинаковый результат в чем смысл?
3.
foreach ($this->items as $item) {
                $item = new Item;

смысл перебирать $item если сразу же подменять ее значение новым пустым объектом. Да и наверное так new Item()

Так что как по мне - ахинея полная
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы