2015-04-20 2 views
2

Что I'using:Validate несколько полей из другой модели в отношениях HABTM

CakePHP версия 2.4.1

Что у меня есть:

стол token_maps имеет атрибуты (id, имя, account_no, charge_code, тип)

таблицы token_map_groups имеет атрибуты (идентификатора, token_map_id, имя, ACCOUNT_NO, charge_code, тип)

таблицы token_map_group_providers имеет атрибуты (идентификатора, token_map_group_id, provider_id)

таблицы поставщиков имеет атрибуты (ID, наименование)

Отношения

token_maps hasMany token_map_groups (один маркер на карте может иметь множество лексем группу карт)

token_map_groups belongsTo token_maps

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

token_map_group_providers belongsTo token_map_groups, поставщики

У меня уже есть добавить страницу для token_map_groups: enter image description here

Что я хочу:

Я хочу нет же поставщика Выбирается во всех лексем карте группы, которая принадлежит к одной лексемы карта.

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

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

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) 
+0

Ответ на ваш вопрос нужно много строки кодов. Он не фокусируется на отношениях между моделями или проверяет условия во многих связанных моделях. –

+0

well actualy прямо сейчас Я пытаюсь заполнить provider_id, который не входит в список, используя sql-запрос – Angelina

+0

Эта ссылка может вам помочь, http://stackoverflow.com/questions/1450457/cakephp-make-select-dropdown –

ответ

1
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()) { 

} 
Смежные вопросы