Мне нужно установить правила проверки для проверки связанных элементов на конкретном объекте, то есть: пользователь может иметь не более 3 продуктов, связанных с ним.
Я считаю, что DataMapper может проверить эту проверку с помощью правила _related_max_size, но я не могу понять, как использовать его в массиве $ validation в модели.
До сих пор я пробовал это как для моих пользователей, так и для моделей продуктов:
var $validation = array(
'product' => array(
'rules' => array('max_size' => 3)
)
);
Может кто-нибудь показать мне пример того, как настроить это на модели, контроллере и, наконец, на виде?
Edit: я имею в виду, что у пользователя есть много продуктов, и он может создать определенное количество, скажем, 3 продукта, когда это количество достигнуто, пользователь больше не может создавать продукты, и это правило проверки не должно разрешить пользователю создавать больше продуктов.
Это будет схема БД:
Users table
------------------
id | username |
------------------
Products table
------------------------
id | user_id | name |
------------------------
Подробнее здесь: http://codeigniter.com/forums/viewthread/178045/P500/
Спасибо!
EDIT:
Хорошо, теперь у меня все работает ... За исключением того, что мне нужно сделать следующее:
var $validation = array(
'product' => array(
'label' => 'productos',
'rules' => array('required','max_size' => $products_limit)
)
);
$ products_limit происходит от «плана», с которым связан пользователь, и сохраняется в сеансе, когда пользователь входит в систему. Когда я пытаюсь запустить это, я получаю:
Parse error: syntax error, unexpected T_VARIABLE in /var/www/stocker/application/models/user.php on line 11
Есть ли способ сделать этот параметр динамическим?