различные способы доступа к связанным таблицам

после того как я получил результат запроса, у меня возникла проблема с доступом к связанным таблицам, к которым я присоединился в своем классе таблиц
отладка ($ query):

    src\Model\Table\ComlibsTable.php (line 30)
[
(int) 0 => object(App\Model\Entity\Comlib) {

'id' => (int) 1,
'question' => 'how to kill someone?',
'answer' => (int) 2,
'asked' => (int) 90,
'tags' => 'kill,proffesional killer',
'created' => null,
'modified' => null,
'answers' => [
(int) 0 => object(App\Model\Entity\Answer) {

'id' => (int) 1,
'question_id' => (int) 1,
'answer' => 'the crackpot will attack the will of the darkness and then i starve',
'rate' => (float) 11.2,
'view' => (int) 22,
'helpful' => '11|22',
'[new]' => false,
'[accessible]' => [
'*' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Answers'

}
],
'[new]' => false,
'[accessible]' => [
'*' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Comlibs'

}
]

теперь я знаю, что могу получить доступ к сущности Comlib, например: $ query [0] [‘question’];
но мне интересно, есть ли другой способ доступа к объектам, как $ query-> question;
и как я могу получить доступ к сущности ответов,
мой код контроллера:

<?php
namespace App\Controller;

use App\Controller\AppController;

class ComlibsController extends AppController {

public function index() {

}

public function getResult(){

$this->viewBuilder()->layout('comlib');
$live_req = $this->request->data['searchBox'];
$query = $this->Comlibs->LFM($live_req);

$this->set('question',$query[0]['question']); // does work
$this->set('answer',$query['answers'][0]['id']); // does not work

}
}

Функция LFM

public function LFM( $live_req) {

$query = $this->find()->where(['question' => $live_req])->contain(['Answers']);
$query = $query->toArray();
debug($query);
//include 5 answer
return $query;

}
}

TNX за любую помощь

0

Решение

Хорошо, я понял это после попытки разных способов, так как это был массив, все, что мне нужно было сделать, чтобы получить доступ к массиву правильным образом, и это было:

$this->set('answer',$query[0]['answers'][0]['id']);

Теперь я могу получить доступ к значениям, но кажется, что это не правильный способ доступа к свойству массива, есть ли другой способ? КАК я могу удалить [0] из $ query [0]?

0

Другие решения

Других решений пока нет …