CodeIgniter:从帮助程序访问视图变量

时间:2011-09-26 02:06:34

标签: php codeigniter

我正在扩展form_helper,它将在视图中填充数组中的数据。

E.g:

//Controller - user_controller.php
User_Controller extends CI_Controller{
    function edit(){
        $data['record'] = array('username'=>'robert','email'=>'simplerobert@google.com');
        $this->load->view('edit',$data);
    }
}


//View - edit.php
<?= $record['username']; ?> >> 'robert'
<?= simple_input('halo'); ?>

//Helper - MY_form_helper.php
function simple_input($name){
    var_dump($record); >> Undefined variable: record
    return "<input type='text'/>";
}

我认为帮助者应该从视图中加载变量。真的不明白它是如何工作的。如何从帮助程序访问视图变量?

3 个答案:

答案 0 :(得分:2)

尝试在函数中传递变量:

//...

//View - edit.php
<?= $record['username']; ?> >> 'robert'
<?= simple_input('halo', $record); ?>


//Helper - MY_form_helper.php
function simple_input($name, $record){
    var_dump($record);
    return "<input type='text'/>";
}

答案 1 :(得分:0)

helper是函数,因此您需要将var传递给函数才能使用它。 (tttony写了这篇文章。)
我想你最好另辟蹊径。 在这种情况下,您不需要传递变量。

//View - edit.php
<?= $record['username']; ?> >> 'robert'
<?= $this->load->view('simple_input'); ?>

//View simple_input.php
var_dump($record);
echo "<input type='text'/>";

答案 2 :(得分:0)

helper是函数,因此您需要将var传递给函数才能使用它。 (tttony写了这篇文章。) 我想你最好另辟蹊径。在这种情况下,您不需要传递变量。

//View - edit.php
<?= $record['username']; ?> >> 'robert'
<?= $this->load->view('simple_input'); ?>

//View simple_input.php
var_dump($record);
echo "<input type='text'/>";