2017-01-21 5 views
0

Я не могу получить любые поля из таблицы предметов ниже, чтобы отобразить. Я получаю правильные данные студентов, я не получаю ошибок, но я не получаю никаких полей из таблицы Subjects. Не уверен, что я делаю неправильно. Если я удалю предложение where, я получаю все данные от объектов, поэтому проблема - это предложение where в содержании.не могу получить поля из таблицы ofstomany

 $students = $this->Students->find() 
        ->contain([ 'Subjects' => function ($q) { 
         return $q 
          ->select(['id','name']) 
          ->where(['Subjects.id >' =>60]) ; 
          }]) 
        ->select(['Students.id','Students.last_name','Students.first_name']) 
        ->where(['Students.student_inactive'=>false]) 
        ->hydrate(true); 


      foreach($students as $key=>$item2): 
        debug($item2); 
      endforeach; 


    /////////output 
object(App\Model\Entity\Student) { 

    'id' => (int) 24, 
    'last_name' => 'Test', 
    'first_name' => 'Cavr', 
    'subjects' => [], 
    '[new]' => false, 
    '[accessible]' => [ 
     '*' => true 
    ], 
    '[dirty]' => [], 
    '[original]' => [], 
    '[virtual]' => [], 
    '[errors]' => [], 
    '[invalid]' => [], 
    '[repository]' => 'Students' 

} 
.... 
+0

Все выглядит хорошо, вы уверены, что у вас есть запись для субъектов на данном условии? подтвердите это первым. –

+0

да, у меня есть много объектов ids более 60, поэтому я понятия не имею, что делать здесь – jagguy

+0

см. Темы на выходе - пустой массив? – jagguy

ответ

0
$sub = $this->Students->find() 
      // ->contain(['Subjects']) 
       ->select(['Students.id']) 
       ->where(['Students.student_inactive'=>0 
        ]) 
       ->order(['Students.first_name' => 'ASC']) 
       ->hydrate(true); 

мне нужно использовать согласование, а также вызвать subjects_students students_subjects таблицы по какой-то причине

  $sub->matching('Subjects', function ($q) use ($subId) { 

       return $q 
        ->select(['Subjects.id','Subjects.name']) 
        ->where(['Subjects.id >' =>$subId]); 
       }); 

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

  • Нет связанных вопросов^_^