输出变量未设置CodeIgniter

时间:2013-02-20 03:18:19

标签: php codeigniter grocery-crud

我正在使用CodeIgniter扩展程序的Grocery_CRUD系统工作。我正在尝试将登录系统与CRUD应用程序集成。

目前我在用户登录时收到此错误,应显示CRUD应用程序:

严重程度:通知 消息:未定义的变量:输出 文件名:views / members_area.php 行号:13

这是错误发生的行:<?php echo $output; ?>

我意识到$output没有被设定,但我不明白为什么!有什么想法吗?

这是我的整个members_area.php文件:查看

<?php
echo '<span class="italic">'.date("l, F d, Y " ,time()).'</span>';
echo '<h3>Welcome: '.$this->session->userdata('username').' '. anchor('logout/signout', 'logout').'</h3>';
?>
<a href='<?php echo site_url('site/dishes_management')?>'>Dishes</a> |
<a href='<?php echo site_url('site/orders_management')?>'>Orders</a> 
<?php echo $output; ?>

这是我的site.php文件:Controller

<?php
class Site extends CI_Controller{

    function __construct(){
        parent::__construct();
        $this->is_logged_in();
        $this->load->database();
        $this->load->helper('url');
        $this->load->library('grocery_CRUD');
    }

    function members_area($output = null){
        $this->load->view('members_area', $output);

    }

    function is_logged_in(){
        $is_logged_in = $this->session->userdata('is_logged_in');
        if(!isset($is_logged_in) || $is_logged_in != true){
            echo 'You need to login to access this page. <a href="../login">Login</a>';
            die();
    }

    function dishes_management()
    {
        try{
            $crud = new grocery_CRUD();
            $crud->set_theme('datatables');
            $crud->set_table('dishes');
            $crud->set_subject('Dish');
            $crud->required_fields('dish_name');
            $crud->columns('dish_name','dish_desc','dish_price', 'dish_cat');
            $output = $crud->render();
            $this->members_area($output);
        }catch(Exception $e){
            show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }

    function orders_management()
    {
            $crud = new grocery_CRUD();
            $crud->set_relation('customerNumber','customers','{contactLastName} {contactFirstName}');
            $crud->display_as('customerNumber','Customer');
            $crud->set_table('orders');
            $crud->set_subject('Order');
            $crud->unset_add();
            $crud->unset_delete();
            $output = $crud->render();
            $this->members_area($output);
    }
}
}
?>

默认情况下,我希望members_area.php设置输出以显示菜肴表中的项目。这似乎不起作用。

任何帮助,一如既往地非常感谢!

1 个答案:

答案 0 :(得分:1)

您是否尝试将输出封闭在数组中?

$this->load->view('members_area', array('output'=>$output));

$output['output'] = $output;
$this->load->view('members_area', $output);

您必须在视图上将其作为二维数组发送,codeigniter正在尝试从给定数据中找到output键,但由于您没有为要搜索的视图提供正确的数据而无法找到它。