Codeigniter显示消息

I dont know whats wrong with my code..

I am trying to display message from database, but i keep on getting error that $results are not defined.

Controller

public function getMessages()
    {
        $this->load->model('get_message');

        $data['results']= $this->get_message->getMessage();

        $this->load->view('home_view', $data);
    }

Model

 <?php
class get_message extends CI_Model{
    function getMessage(){
       $query = $this->db->query("SELECT * FROM messages");
        return $query->result_array();
    }
}

View

<!DOCTYPE html>
<html>
  <head>
    <title>Home</title>
  </head>
  <body>
    <h1>Home</h1>
    <h2>Welcome <?php echo $username; ?>!</h2>
    <div id="Main">
        <?php
        foreach($results->result() as $row){
            echo $row ->id;
            echo $row ->user_username;
            echo $row ->text;
            echo $row ->posted_at;
            echo "<br/>";
        }
        ?>
    </div>
    <a href="home/logout">Logout</a>
  </body>
</html>

EDIT: here is what my code looks like now

Controller

 public function index()
        {
            $this->load->model('get_message');

            $data['results']= $this->get_message->getMessage();

            $this->load->view('home_view', $data);
        }

Model

<?php
class get_message extends CI_Model{
    function getMessage(){
       $query = $this->db->query('SELECT * FROM messages');
       return $query->result_array();
    }
}

view

<!DOCTYPE html>
<html>
  <head>
    <title>Home</title>
  </head>
  <body>
    <h1>Home</h1>

    <div id="Main">
        <?php
        foreach($results as $row){
            echo $row['id'];
            echo $row['user_username'];
            echo $row['text'];
            echo $row['posted_at'];
            echo "<br/>";
        }
        ?>
    </div>

  </body>
</html>

This code works. if it doesn't you are doing something else wrong.

You are passing wrong element to the view.

$data['result']= $this->get_message->getMessage();
             ^

Should be

$data['results']= $this->get_message->getMessage();
             ^

Also in Model,

return $query->result();

Should be:

return $query;

And in view,

foreach($results as $row){

Should be

if ($results->num_rows()) { // IN CASE, THE RESULT HAS NO ROWS.
  foreach($results->result() as $row) {

In the controller you send data as result

 $data['result']= $this->get_message->getMessage();

Access in view like this:

foreach($result as $row){

}

You used as results in foreach instead of result

View :

Your code

foreach(**$results** as $row){
}
?>

change to

foreach(**$result** as $row){
}
?>

Try to get result in some other variable in your controller function -

public function getMessages()
{

    $this->load->model('get_message');

    $data['msgesult']= $this->get_message->getMessage();

    $this->load->view('home_view', $data);
}

And then in view -

<div id="Main">
    <?php
    foreach($msgesult as $row){
        echo $row['id'];
        echo $row['user_username'];
        echo $row['text'];
        echo $row['posted_at'];
        echo "<br/>";
    }
    ?>
</div>

This should work.