2013-05-17 4 views
0

Мне нужна помощь с ними, я не могу ничего найти в Интернете.CakePHP принадлежит как %%

У меня есть модель

public $belongsTo = array(
     'Group' => array(
      'className' => 'Group', 
      'foreignKey' => 'group_id', 
    ), 
     'Audit_type' => array(
      'className' => 'Audit_type', 
      'foreignKey' => 'audit_type', 
    ), 
     'User' => array(
      'className' => 'User', 
      'foreignKey' => 'auditor', 
    ), 
); 

, но мне нужно, чтобы быть в состоянии найти группу с, как, потому что теперь в group_id я иметь несколько идентификаторов как 145,125,123

есть ли способ я могу найти его с LIKE ??

Update:

групп таблицы представляет собой таблицу, поведение дерева, является поведение дерева из CakePHP теперь таблицы, которая имеет несколько идентификаторов, представляет собой таблицу, которая имеет аудит, и я нужен этот аудит, чтобы быть частью нескольких групп.

+1

Вы задумывались над тем, что произойдет, если у вас есть идентификатор «12» и один из «123»? Использование LIKE для поиска почти всегда является последним, если вы специально не строите поиск или что-то еще. – Dave

+0

Да, хотя это наименьшее количество проблем с хранением нескольких идентификаторов в одном внешнем ключе. –

+0

есть ли какой-нибудь другой подход к этому, или вы бы, ребята, посоветовали мне это? У меня нет вариантов, я думал о создании другой таблицы с идентификаторами и идентификаторами групп –

ответ

1

НЕ храните несколько идентификаторов в поле group_id!

В отличие от отношений BelongsTo, похоже, что вам нужен CakePHP Has And Belongs To Many relationship.

Но что бы вы ни делали, не храните несколько идентификаторов в одном поле внешнего ключа. Этого было бы достаточно, чтобы дать Codd сердечный приступ!

+0

, как я могу это сделать, так как мне действительно нужно, чтобы у вас были мультимедийные группы. таблица групп - таблица поведения дерева –

+0

, и мне нужно, чтобы она была множественной группой. –

+1

Обновите свой вопрос, чтобы включить полное описание отношений, которые вы пытаетесь моделировать. Что принадлежит группе? И дайте больше информации о дереве того, что вы пытаетесь сделать. –

0

Вы не должны использовать «LIKE» для поиска нескольких идентификаторов.

Делают это, как это вместо:

$this->Group->find('all', array(
    'conditions' => array(
     'id' => array('145', '125', '123') 
    ) 
); 

Он будет использовать MySQLs "IN".

+1

Я думаю, что я неправильно понял ... Думаю, моему мозгу было трудно принять, что кто-то попытается ЛЮБИТЬ список идентификаторов, разделенных запятыми, в поле must-be-int. – Dave

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