Мне нужно настроить правила проверки для проверки связанных элементов на конкретном объекте, то есть: пользователь может иметь не более 3 продуктов, связанных с ним.
Я считаю, что DataMapper может проверить эту проверку с помощью правила _related_max_size, но я не могу понять, как использовать его в массиве $validation в модели.
До сих пор я пробовал это как в своих моделях пользователя, так и в моделях продукта:
var $validation = array(
'product' => array(
'rules' => array('max_size' => 3)
)
);
Может ли кто-нибудь показать мне пример того, как настроить это на модели, контроллере и, наконец, на представлении?
Изменить: я имею в виду, что у пользователя есть много продуктов, и он может создать определенное их количество, скажем, 3 продукта, когда эта сумма будет достигнута, пользователь больше не сможет создавать продукты, и это правило проверки не должно разрешать пользователю для создания большего количества продуктов.
Это будет схема БД:
Users table
------------------
id | username |
------------------
Products table
------------------------
id | user_id | name |
------------------------
Подробнее здесь: http://codeigniter.com/forums/viewthread/178045/P500/ а>
Спасибо!
ИЗМЕНИТЬ:
Хорошо, теперь у меня все работает… За исключением того, что мне нужно сделать следующее:
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
Есть ли способ сделать этот параметр динамическим?