dongyou6768 2009-10-16 10:42
浏览 35
已采纳

CodeIgniter get_where

I’m attempting to use get_where to grab a list of all database records where the owner is equal to the logged in user.

This is my function in my controller;

function files()
{
    $owner = $this->auth->get_user();

    $this->db->get_where('files', array('owner =' => '$owner'))->result();
}

And in my view I have the following;

<?php foreach($query->result() as $row): ?>

    <span><?=$row->name?></span>

<?php endforeach; ?>

When I try accessing the view, I get the Fatal error: Call to a member function result() on a non-object in /views/account/files.php on line 1.

Wondered if anyone had any ideas of what might be up with this?

Thanks

  • 写回答

2条回答 默认 最新

  • douhai5835 2009-10-16 12:52
    关注

    CodeIgniter is a framework based on MVC principles. As a result, you would usually separate application logic, data abstraction and "output" into their respective areas for CodeIgniter use. In this case: controllers, models and views.

    Just for reference, you should usually have you "data" code as a model function, in this case the get_where functionality. I highly suggest you read through the provided User Guide to get to grips with CodeIgniter, it should hold your hand through most steps. See: Table of Contents (top right).

    TL;DR

    To solve your problem you need to make sure that you pass controller variables through to your view:

    function files()
    {
        $owner = $this->auth->get_user();
    
        $data['files'] = $this->db->get_where('files', array('owner =' => '$owner'))->result();
    
        $this->load->view('name_of_my_view', $data);
    }
    

    And then make sure to use the correct variable in your view:

    <?php foreach($files as $row): ?>
    
        <span><?=$row['name']; ?></span>
    
    <?php endforeach; ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?