【发布时间】:2016-01-27 22:46:45
【问题描述】:
我有控制器从模型中获取的标准应用程序只有 1 行:
return $query->row();
,然后设置变量(数组)并将数据返回到某个视图:
$data['fname'] = $user->fname;
$data['lname'] = $user->lname;
$this->load->view('someView', $data);
,然后我从视图中得到它:
<?php echo $fname ; ?>
<?php echo $lname ; ?>
问题是这样的,数据库可能有也可能没有结果。如果没有结果,我会收到错误消息:
消息:试图获取非对象的属性
我在更改控制器中的代码时解决了这个问题:
$data['fname'] = $user['fname'];
$data['lname'] = $user['lname'];
但是如果我这样做并且数据库表有结果,我会看到这个错误:
不能使用 stdClass 类型的对象作为数组
如何解决这个问题? 在这种情况下,最佳做法是什么? 如果数据库表中没有行,我必须在模型中添加逻辑以返回一些将为示例设置为 NULL 的属性?
【问题讨论】:
标签: php mysql codeigniter model-view-controller