php - CodeIgniter,从模型到 View 显示 MySQL 查询,最佳实践

标签 php mysql codeigniter model-view-controller

我有标准应用程序, 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/

相关文章:

php - 检查特定访客的 COOKIE 是否已设置/为空

mysql - CakePHP 在虚拟字段中使用 "Group By"不起作用

python - django 中的 syncdb 问题

php - 如何从 CodeIgniter 中的 URL 中删除 Controller 和函数名称

codeigniter - 如何在CodeIgniter中显示错误消息

php - 在表格中显示 PHP 中 SQL 查询的结果

php - 不同模型类型 Laravel 上的不同关系

PHPDoc 和后期(静态或动态)绑定(bind)

php - 如何在 PHP 中显示 MySQL 数据库的内容

php - 在 codeigniter 中禁用时间戳更新