将数组变量传递给Codeigniter中的View

时间:2014-05-13 06:42:56

标签: php codeigniter

美好的一天! 我有这个代码而且我不知道我的代码可能会出现什么问题&#cas;我不能echo the value of variable in view

这是我的控制者:

public function generate()
{
    $name    =   $this->input->post('name');

    $this->data['generated'] = $this->user_models->generate_name($name);
    $this->load->view('templates/header');
    $this->load->view('generated_user_views', $this->data);
    $this->load->view('templates/footer');
}

模特:

function generate_name($name)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->where('name', $name);
    $query = $this->db->get();

    return $query->result_array();
}

在视图中:

<?php
    $view_name = $generated['name'];
    $view_department = $generated['department'];
?>
<div class="form-group">
    <label for="name" class="col-sm-2 control-label emp">Name</label>
    <div class="col-sm-10">
        <input type="text" class="typeahead form-control" id="name" placeholder="Name" name="name" autocomplete="off"><?php echo $view_name; ?></input>
    </div>
</div>
<div class="form-group">
    <label for="department" class="col-sm-2 control-label emp">Department</label>
    <div class="col-sm-10">
        <input type="text" class="typeahead form-control" id="department" placeholder="Department" name="department" autocomplete="off"><?php echo $view_department; ?></input>
    </div>
</div>

我不知道为什么我总会遇到如下错误:

遇到PHP错误 严重性:注意 消息:未定义的索引:名称 文件名:views / generated_user_views.php 行号:12

遇到PHP错误 严重性:注意 消息:未定义的索引:部门 文件名:views / generated_user_views.php 行号:13

2 个答案:

答案 0 :(得分:1)

在您的模型中,您正在从表中选择所有数据,因此返回了多维数组,在视图中,您需要遍历结果see docs

foreach ($generated as $row)
{

   echo $row['name'];
   echo $row['department'];
} 

或者我想如果您需要表格中的单条记录,那么您可以在模型中使用$query->row_array();,然后在视图中可以访问它们

   $view_name =$generated['name'];
   $view_department = $generated['department'];

答案 1 :(得分:0)

试试这个:

$name = $this->input->post('name');
$department = $this->user_models->generate_name($name);

$this->data = array('generated' => array('name' => $name, 'department'=> $department);