Неопределенное свойство: Cake \ ORM \ Query :: $ texto

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>

Error: Notice (8): Undefined property: Cake\ORM\Query::$texto [APP/Template/Documentos/documento.ctp, line 3]

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

Internal Server Error [500].

Если вы извлекаете только одну запись, возможно, вам лучше сделать это с помощью ->get($idDocumento), а не ->find()->where(['id' => $idDocumento]).

Greg Schmidt 27.06.2018 19:36

Спасибо! Это сработало

Isaac Palacio 27.06.2018 19:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
925
2

Ответы 2

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

first () или all () или execute () Любой из трех выдает ошибку: Internal Server Error [500].

Isaac Palacio 27.06.2018 19:28

Обновите свой вопрос, чтобы показать код, в котором вы это пробовали?

Greg Schmidt 27.06.2018 19:37

вам нужно использовать метод 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);

Другие вопросы по теме