1

我正在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 文件:控制器

<?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输出设置为显示菜肴表中的项目。这似乎不起作用。

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

4

1 回答 1

1

您是否尝试将输出包含在数组中?

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

或者

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

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

于 2013-02-20T04:11:42.527 回答