ошибка foreach с codeigniter - PullRequest
       6

ошибка foreach с codeigniter

0 голосов
/ 10 октября 2010

Эй, я использую codeigniter, и я получил эту ошибку

Произошла ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенная переменная: запрос

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

Номер строки: 2 Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: указан неверный аргумент для foreach ()

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

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

мой контроллер:

   <?php

class Nyheder extends Controller {

 function index()
    {
  $data['content'] = 'nyheder_view';
   $this->load->view('includes/template', $data);

    }

 function vis()
 {
  //parent::controller();
  $this->load->model('nyheder_model');
  $data['query'] = $this->nyheder_model->load_nyheder();

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

 }
}
?>

мой взгляд

<?php foreach($query as $row) : ?>
<h1><?php echo $row->overskrift; ?></h1>
<p><?php echo $row->indhold; ?></p>
<?php endforeach;?>

Ответы [ 5 ]

1 голос
/ 10 октября 2010

Я полагаю, что $ this-> nyheder_model-> load_nyheder () возвращает false или null.

попробуйте var_dump ($ this-> nyheder_model-> load_nyheder ()) перед загрузкой вашего представления.

Возможно, проблема с запросом sql в вашей модели nyheder?

1 голос
/ 10 октября 2010

Я не вижу тут ничего плохого. Не могли бы вы вставить эту строку непосредственно перед загрузкой nyheader_view:

die(var_export($data));

И дайте нам знать, что вы видите.

0 голосов
/ 10 февраля 2012

Попробуйте, я думаю, вы пропустили результат () после $ query ...

<?php foreach($query->result() as $row) : ?>
   <h1><?php echo $row->overskrift; ?></h1>
   <p><?php echo $row->indhold; ?></p>
<?php endforeach;?>
0 голосов
/ 18 октября 2010

хорошо, будем догадываться, что load_nyheder () возвращает либо объект, либо массив так что сначала проверьте сантехнику путем жесткого кодирования и сделайте что-то вроде этого:

$data['query'] = array(
            'keystr1' => 'valuestr1',
            'keystr2' => 'valuestr2',
            'keystr3' => 'valuestr3'
                       );
$this->load->view('nyheder_view', $data);

Примечание: если вы поместите объект в $ data, он будет преобразован в массив.

Тогда, по вашему мнению, "nyheder_view" сделайте что-то вроде этого:

<?php foreach($query as $someKey=>$someValue):?>
    <h1><?php echo $someKey; ?></h1>
    <p><?php echo $someValue; ?></p>
<?php endforeach;?>

Сначала все работает с жестко запрограммированными данными испытаний (фикстур), затем попробуйте передать $ data ['query'] с помощью вашего load_nyheder () и посмотрите, не возникли ли у вас похожие проблемы. Таким образом, вы знаете, где проблема.

0 голосов
/ 10 октября 2010

Я бы согласился, что проблема, вероятно, где-то в вашей модели ... или, может быть, это что-то еще более очевидно, например, опция базы данных не активирована ... Попробуйте:

 function __construct(){
          parent::Controller(); 

          $this->load->database();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...