使用Codeigniter

时间:2018-12-20 10:16:25

标签: php codeigniter

我是Codeigniter框架的初学者,我也在向youtube学习

在我的admin.php代码中

<?php 
class Admin extends MY_Controller {
    public function dashboard(){
        $this->load->model('articlesmodel');
        $articles = $this->articlesmodel->articles_list();
        $this->load->view('admin/dashboard', ['articles'=> $articles]);
    }
}
?>

在我的仪表板中。PHP代码为

<table class="table">
    <thead>
        <th>Sr. No</th>
        <th>Title</th>
        <th>Action</th>
    </thead>
    <tbody>
        <?php if ( count($articles) ):?>
            <?php foreach($articles as $article): ?>
                <tr>
                    <td>1</td>
                    <td>
                        <?= $article->title ?>
                    </td>
                    <td>
                        <a href="" class="btn btn-info">Edit</a>
                        <a href="" class="btn btn-danger">Delete</a>
                    </td>
                </tr>
        <?php endforeach;  ?>
        <?php else:?>
            <tr>
                <td colspan="3">No Records Found</td>
            </tr>
        <?php endif;?>
    </tbody>
</table>

我正在以表格格式从数据库中获取文章,但是出现以下错误:未定义的变量:文章,在dashboard.php页面中

2 个答案:

答案 0 :(得分:2)

My_Controller控制器类定义中的CI_Controller更改为Admin

在Codeigniter中创建控制器类时,应始终扩展CI_Controller类。因为$ this-> load()函数是在CI_Controller类中实现的。请参见documentation

最佳做法是创建一个数组并将其传递给view()函数,而不是在view()函数参数中初始化数组。例如:

$data['articles'] = $this->articlesmodel->articles_list();
$this->load->view('admin/dashboard',$data);

答案 1 :(得分:1)

控制器

更改这些行

$articles = $this->articlesmodel->articles_list();

$this->load->view('admin/dashboard', ['articles'=> $articles]);

对此

$data['articles'] = $this->articlesmodel->articles_list();

$this->load->view('admin/dashboard',$data);

提示: 尝试看看文档语法

https://www.codeigniter.com/user_guide/general/views.html