эхом на странице просмотра - PullRequest
       3

эхом на странице просмотра

1 голос
/ 12 августа 2011

Я пытаюсь отобразить поле моей базы данных в представлении, но я получаю сообщение об ошибке:

Сообщение: попытка получить свойство необъекта

Имя файла: views / admin_view_report.php

Номер строки: 7

Когда я повторяю весь массив, он работает просто отлично. Я не могу найти, что не так.

Часть моего контроллера:

function index(){
    $this->load->model('viewreport');
    $data['records']=$this->viewreport->getAllByChk();
    $this->load->view('admin_view_report',$data); 
}

Часть моей модели:

function getAllByChk(){
    $q = $this->db->get('info');
    if ($q->num_rows()>0){
        foreach ($q->result_array() as $row)
        {
            $data[]=$row;
        }
        return $data;
    }
}

Вид:

<?php  foreach($records as $row):?>

    <?php echo $row->subject; ?>

<?php endforeach;?>

Если я только печатаю data['records'], это дает следующий вывод

Array
(
    [0] => Array
        (
            [id] => 1
            [address] => 11/siddeshwari
            [area] => sid
            [lat] => 21
            [lng] => 21
            [subject] => hello
            [problem] => lots of problem
            [image] => 
            [time] => 2011-08-11 23:49:29
            [register_id] => 1
            [category_id] => 1
            [city_city_id] => 1
            [status_status_id] => 0
        )

    [1] => Array
        (
            [id] => 2
            [address] => 134 banani
            [area] => banai
            [lat] => 1223
            [lng] => 2133
            [subject] => not working
            [problem] => yesproblem problem problem
            [image] => 
            [time] => 2011-08-12 01:09:44
            [register_id] => 1
            [category_id] => 2
            [city_city_id] => 1
            [status_status_id] => 0
        )

)

но когда я пытаюсь напечатать проблему или тему только, это выдает ошибку.

Ответы [ 4 ]

2 голосов
/ 12 августа 2011

result_array() возвращает вам массив массивов, а не объектов.

На ваш взгляд:

$row->subject

должно быть:

$row['subject']

Если вы хотите, чтобы $ row был объектом, измените result_array() на result(). Это даст вам массив объектов.

Также foreach ($q->result_array() as $row) является избыточным.

Это просто копирование $q->result_array() в $data.

Вам не нужно этого делать, просто return $q->result_array();.

1 голос
/ 12 августа 2011

Я бы сделал следующее

function getAllByChk()
{
    $q = $this->db->get('info');
    if ($q->num_rows() > 0)
    {
        return $data->result();
    }
    return false;
 }

тогда в поле зрения

if($records) :
    foreach($records as $row) :
      print_r($row);
    endforeach;
else:
    echo 'No Records';
endif;
0 голосов
/ 12 августа 2011

Также вы можете вернуть результат ()

          function getAllByChk(){

$q = $this->db->get('info');
        if ($q->num_rows()>0){
         foreach ($q->result_array() as $row)
          {
           $data[]=$row;

             }
         return $data->result();
          }
             }
0 голосов
/ 12 августа 2011
function getAllByChk(){
    $data = array();
    //remove if

Кроме того, получить результат в виде объекта $q->result() или echo $row['subject']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...