2015-08-06 2 views
1

Я работаю в CakePHP3, и я прочитал официальную книгу, но не нашел это. Я хочу показать столбец другой таблицы, используя join. У меня есть этот код:Показать колонку Присоединиться к CakePHP3

$id = $this->Auth->User('idUsuarios'); 
$lastquery = TableRegistry::get('Apuestas'); 
$query = $lastquery->find() 
     ->join([ 
     'Juego' => [ 
      'table' => 'juego', 
      'type' => 'LEFT', 
      'conditions' => 'Apuestas.juego_idJuego = Juego.idJuego' 
     ]]) 
->where(['usuarios_idUsuarios' => $id]) 
->order(['fecha' => 'ASC']) 
->limit(1); 

$this->set(compact('query')); 

Но в нем нет ни одной таблицы соединения.

ответ

1

Взгляните на эту часть книги.

http://book.cakephp.org/3.0/en/orm/associations.html

Выберите наиболее подходящую ассоциацию

Пусть мое шоу Yo моего примера:

  • Страна HasMany Comunites
  • распространяемых HasMany пятен, BelongsTo Страны, HasMany Провинции
  • Область HasMany Пятна, BelongsTo Cominities
  • Пятно BelongsTo Страны, BelongsTo Comunites, BelongsTo Провинции

Позже, чтобы показать конкретное место на $ id

$spot = $this -> Spots -> find()->where(['Spots.id' => $id])-> contain(['Provinces' => ['Communities' => ['Countries']]])->first(); 

Теперь я могу позвонить в поле зрения, например. $spot -> province -> name или $spot -> country -> name

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