2015-02-13 5 views
-2

У меня проблема с использованием запроса на поиск в cakephp. Проблема заключается в следующем: У меня есть две модели, связанные друг с другом .. МОЖЕТ МОДЕЛЬ 1 hasmany MODEL2. Теперь я хочу, чтобы запустить найти запрос через модель 1 таким образом, что он должен получать различное количество результатов model2 таблицы следующим образом:Cakephp: найти вопросы о проблемах?

array(
     0 => (  Model1 : { table contents } 
        Model2 : { array(0 => 
            1 => 
            2 => 
            3 => 
            ) 
          } 
      ) 
     1 => (  Model1 : { table contents } 
        Model2 : { array(0 => 
            1 => 
            2 => 
            3 => 
            4 => 
            ) 
          } 
      ) 
) 

и так далее. Другими словами, результат модели 2 должен отличаться, но Model1 имеет фиксированное количество записей. Я хотел знать, какие будут наиболее эффективные способы получить вышеупомянутый результат.

Далее, добавив - Рассмотрим следующую таблицу - Student (ID, класс, знаки) Я хочу следующий результат:

  • Есть 100 строк в таблице. Я хочу получить в общей сложности 11 строк. Условие => класс - «Компьютер»
  • Первая строка должна печатать детали студента с идентификатором = 15;
  • Оставшиеся строки должны иметь 10 идентификаторов, т.е. id! = 15.
  • Всего мне нужно всего 11 строк.
  • Еще одно ограничение заключается в том, что пользователь, имеющий id = 1, может находиться где угодно в таблице.
+0

При выполнении 'find', как это не отвечает вашим потребностям? Вы должны быть более конкретными в отношении вашей проблемы. – AgRizzo

+0

Вы знаете, как написать SQL, который соответствует вашим требованиям? Решение для вашего образца будет выглядеть как SELECT * FROM student WHERE class = 'computer' ORDER BY id = 15 DESC LIMIT 11' Если это то, что вы хотите И если вы пытаетесь логически приравнять свой модельный пример к примеру ученика, то вы не можете получить решение, используя метод Cakephp 'find'. – AgRizzo

+0

, но идентификатор не фиксирован, он может меняться. id не всегда будет 15 .i.e. он меняется –

ответ

0

Это отношение между двумя моделями. Надеюсь, что это помогает ....

Model-1:

var $hasMany = array(
    'ProductOptionValue' => array(
     'className' => 'ProductOptionValue', 
     'foreignKey' => 'product_option_id', 
     'conditions' => array('ProductOptionValue.is_active' => 1) 
    ) 
); 

Модель-2:

var $belongsTo = array(
    'ProductOption' => array(
     'className' => 'ProductOption', 
     'foreignKey' => 'product_option_id', 
     'fields' => array('id', 'product_option_name') 
    ) 
); 
Смежные вопросы