Проверка нескольких полей из другой модели в отношении HABTM

Что я использую:

CakePHP версия 2.4.1

Что я имею:

Таблица token_maps имеет атрибуты (Я бы, имя, account_no, обвинительный код, тип)

Таблица token_map_groups имеет атрибуты (Я бы, token_map_id, имя, account_no, обвинительный код, тип)

Таблица token_map_group_providers имеет атрибуты (id, token_map_group_id, provider_id)

Таблица провайдеры имеет атрибуты (Я бы, название)

отношения

token_maps имеет много token_map_groups (ОДНА карта токенов может иметь МНОЖУ группу карт токенов)

token_map_groups принадлежит token_maps

token_map_groups HABTM провайдеры

token_map_group_providers принадлежит token_map_groups, провайдеры

У меня уже есть страница добавления для token_map_groups:
введите описание изображения здесь

Что я хочу:

Я хочу, чтобы во всех группах токенов не было ни одного выбранного провайдера, принадлежащего ОДНОЙ карте токенов.

Как я могу это подтвердить?

После многих случаев я использую запрос, который вернет список [еще не выбранного] провайдера. вот запрос:

select id from providers where id not in (
select c.provider_id from token_maps a
select c.provider_id from token_maps a
inner join token_map_groups b ON b.token_map_id = a.id
inner join token_map_group_providers c on c.token_map_group_id=b.id
left join providers p on p.id=c.provider_id
where a.id= $id)

2

Решение

Suppose you have a modal User and you want to validate User's data from Product modal then what you can do is,
1. Create validation rule in the Product modal like,

public $validate = array(
'first_name' => array(
'rule' => '',
'message' => ''
));2. Add user data to product data like,
$this->Product->data['Product'] = $this->User->data['User'];

3. And in the ProductsController,
if($this->Product->validates()) {

}
1

Другие решения

Других решений пока нет …