我有标准应用程序, Controller 仅从模型获取 1 行:
return $query->row();
,之后设置变量(Array)并将数据返回到某个View:
$data['fname'] = $user->fname;
$data['lname'] = $user->lname;
$this->load->view('someView', $data);
,然后我从 View 中获取它:
<?php echo $fname ; ?>
<?php echo $lname ; ?>
问题是,数据库可能有结果,也可能没有结果。如果没有结果,我会收到错误:
Message: Trying to get property of non-object
当我更改 Controller 中的代码时,我修复了这个问题:
$data['fname'] = $user['fname'];
$data['lname'] = $user['lname'];
但是如果我这样做并且数据库表中有结果,我会看到以下错误:
Cannot use object of type stdClass as array
如何解决这个问题? 在这种情况下,最佳做法是什么? 我必须在模型中添加逻辑以返回一些属性,如果数据库表中没有行,这些属性将在示例中设置为 NULL?
最佳答案
为什么不这样做:
return $query->row_array();
$data['user'] = $user;
并将其全部传递给 View ?然后您可以确定何时在 View 中回显:
<!-- in view -->
<?= isset($user['fname']) ? $user['fname'] : 'No First Name Found';?>
关于php - CodeIgniter,从模型到 View 显示 MySQL 查询,最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35049599/