I have this error in CI:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: news
Filename: controllers/First.php
Line Number: 33
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: news
Filename: views/welcome_view.php
Line Number: 1
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/welcome_view.php
Line Number: 1
There is my controller:
<?php
if ( ! defined('BASEPATH')) exit ('No direct script access allowed');
class First extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('materials_model');
}
public function index()
{
$this->load->view('header_view');
$this->load->view('menu_view');
$this->load->view('about_me_view');
$this->load->view('navigation_view');
$this->load->view('search_view');
$this->load->view('main_text_view');
$this->load->view('footer_view');
}
public function mat()
{
$this->load->model('materials_model');
$this->materials_model->get();
$data['news'] = $this->materials_model->get();
$this->load->view('welcome_view',$news);
if(empty($data['news']))
{
echo'Array is Null';
}
else
{
echo'Array has info';
}
}
My model:
<?php
if ( ! defined('BASEPATH')) exit ('No direct script access allowed');
class Materials_model extends CI_Model
{
public function get()
{
$query = $this->db->get('materials');
return $query->result_array();
}
}
?>
My view :
<?php foreach ($news as $one):?>
<?=$one['author']?>
<?php endforeach; ?>
I know, that array which I pass into the view IS NOT NULL (I check it for print_r and if, else construction), but I can pass it and view it. What mistake do I have?
Set variable:
Pass it to the view:
Access it in the view as a result array:
As an option, you can change your get() method in model to return object, not array.
Then in view you need handle $news as an object, like that: