Неопределенное свойство: Cake \ ORM \ Query :: $ texto - PullRequest
0 голосов
/ 27 июня 2018

DocumentosController:

public function documento($idDocumento) {
   $documentos = TableRegistry::get('Documentos');
   $documento = $documentos
                  ->find()
                  ->select('id', 'titulo', 'texto')
                  ->where(['id' => $idDocumento]);
  }

documento.ctp:

<div>
  <?= $documento->texto; ?>
</div>

Ошибка: Примечание (8): неопределенное свойство: Cake \ ORM \ Query :: $ texto [APP / Template / Documentos / documentsmento.ctp, строка 3]

$ id, если он имеет значение, если он возвращает число, но запрос не работает, потому что я пытался добавить ->first(), но он возвращает:

Внутренняя ошибка сервера [500].

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы должны использовать метод set (), основной способ отправки данных с вашего контроллера на ваше представление.
После того, как вы используете set (), вы можете получить доступ к переменной:

public function documento($idDocumento) {
   $documentos = TableRegistry::get('Documentos');
   $documento = $documentos
              ->find('all')
              ->select('id', 'titulo', 'texto')
              ->where(['id' => $idDocumento]);
   $this->set('documento ', $documento );
}

для справки https://book.cakephp.org/3.0/en/controllers.html#setting-view-variables

Вы также можете использовать get (),

$documento = $documentos->get($idDocumento);
0 голосов
/ 27 июня 2018

Вы передаете экземпляр \ Cake \ ORM \ Query в представление. Вы должны выполнить запрос, вызвав first () или all () или execute (), чтобы получить результат.

...