problem with $posts variable |
i am a beginner in codeigniter,i am trying to make a crud website for learning website but i am facing this error.
A PHP Error was encountered Severity: Notice Message: Undefined variable: posts Filename: posts/index.php Line Number: 2 Backtrace: File: /opt/lampp/htdocs/codeigniter/application/views/posts/index.php Line: 2 Function: _error_handler File: /opt/lampp/htdocs/codeigniter/application/controllers/Posts.php Line: 23 Function: view File: /opt/lampp/htdocs/codeigniter/index.php Line: 315 Function: require_once my controller file is <?php class Posts extends CI_Controller{ public function index(){ $data['title']='Latest Posts'; $data['posts']=$this->Post_model->get_posts(); $this->load->view('templates/header'); $this->load->view('posts/index',$data); $this->load->view('templates/footer'); } public function view($slug=NULL) { $data['post']=$this->Post_model->get_posts($slug); if(empty($data['post'])){ show_404(); } $data['title']=$data['post']['title']; print_r('$data'); $this->load->view('templates/header'); $this->load->view('posts/view',$data); $this->load->view('templates/footer'); } public function create(){ $data['title']='create post'; $this->form_validation->set_rules('title','Title','required'); $this->form_validation->set_rules('body','body','required'); if($this->form_validation->run()===false){$this->load->view('templates/header'); $this->load->view('posts/create',$data); $this->load->view('templates/footer'); } else{ $this->Post_model->create_post(); printr('$data'); redirect('posts'); } } public function delete($id) { $this->Post_model->delete_post($id); redirect('posts'); } public function edit($id) { $data['post']=$this->Post_model->get_posts($slug); if(empty($data['post'])){ show_404(); } $data['title']='edit post'; $this->load->view('templates/header'); $this->load->view('posts/index',$data); $this->load->view('templates/footer'); } public function update() { $this->Post_model->update_post(); redirect('posts'); } } my model file is <?php class Post_model extends CI_Model{ public function __construct(){ $this->load->database(); } public function get_posts($slug=false){ if($slug===false){ $this->db->order_by('id','DESC'); $query=$this->db->get('posts'); return $query->result_array(); } $query=$this->db->get_where('posts',array('slug'=>$slug)); return $query->row_array(); } public function create_post(){ $slug=url_title($this->input->post('title')); $data=array('title'=>$this->input->post('title'), 'slug'=>$slug, 'body'=>$this->input->post('body') ); return $this->db->insert('posts',$data); } public function delete_post($id){ $this->db->where('id',$id); $this->db->delete('posts'); return true; } public function update_post() { $slug=url_title($this->input->post('title')); $data=array('title'=>$this->input->post('title'), 'slug'=>$slug, 'body'=>$this->input->post('body') ); $this->db->where('id',$this->input->post('id')); return $this->db->update('posts',$data); } } my index view is <h2><?=$title?></h2> <?php foreach($posts as $post)?> <h3><?php echo $post['title'];?></h3>o <small class="post-date">Posted on:<?php echo $post['created at'];?></small><br> <?php echo word_limiter($post['body'],60);?> <p><a class="btn btn-default" href="<?php echo site_url('/posts/' .$post['slug']);?>">read more</a></p> <?php endforeach;?> i am autoloaing my database in config. plz someone help me out i am stuck.
See my answer in this thread:
https://forum.codeigniter.com/thread-67686.html
Your view file has a loop that reads
Code: foreach($posts as $post) but in your controller you set the variable to $data['post']. You need to change it to $data['posts'] for your loop to work correctly.
Perhaps, I'm wrong with my first post. Sorry but the code is a bit messy. I don't see you loading your model and you didn't post your model. As a test try setting $data['posts'] = array('first', 'second', 'third'); and see if your loop runs.
now I see your model. Try to use the code block when posting code. Easier to see.
![]()
sir can you plz visit this forum,i have tried to make things a bit clearer over.here,it woul be a great help for me.
https://forum.codeigniter.com/thread-676...#pid342031 |
Welcome Guest, Not a member yet? Register Sign In |