cakephp 未定义的属性:蛋糕\ORM\查询::$文本

mlnl4t2r  于 2022-11-12  发布在  PHP
关注(0)|答案(2)|浏览(163)

文档到控制器:

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):未定义的属性:[应用程序/模板/文档/documento.ctp,第3行]
$id如果它有值,如果它返回一个数字,但是查询不起作用,因为我试图添加->first(),但是它返回:
内部服务器错误[500]。

px9o7tmv

px9o7tmv1#

必须使用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);
gzszwxb4

gzszwxb42#

您将\Cake\ORM\Query的示例传递给视图。您必须通过调用first()或all()或execute()来执行查询以获得结果。

相关问题