Codeigniter从控制器解析变量到视图 - 消息:数组到字符串转换

时间:2014-01-16 03:40:15

标签: php codeigniter

我的控制器中有这个功能:

public function simpan() {
    $this->load->library('form_validation');
    // field name, error message, validation rules
    $this->form_validation->set_rules('name', 'User Name', 'trim|required|min_length[4]|xss_clean');
    $this->form_validation->set_rules('email', 'Your Email', 'trim|required|valid_email');
    $this->form_validation->set_rules('message', 'Your Message', 'trim|required');

    if ($this->form_validation->run() == FALSE) {
        $data['msg_save'] = "data not saved";
        $this->load->view("v_bukutamu, $data");
    } else {
        $this->m_bukutamu->simpan();
        $data['msg_save'] = "data saved";
        $this->load->view("v_bukutamu, $data");
    }
}

这一行解析视图中的变量 $ msg_save

<p><?php if (isset($msg_save)) echo $msg_save; ?></p>

数据已成功保存到数据库,但它给出了以下错误消息:

Message: Array to string conversion

我只想用相同的视图显示成功或失败的消息。 有谁知道我的剧本应该改变什么?

3 个答案:

答案 0 :(得分:2)

你应该使用

$this->load->view("v_bukutamu", $data);

而不是

$this->load->view("v_bukutamu, $data");

要加载特定视图,我们使用$this->load->view('name');,其中name是没有php扩展名的视图文件的名称。

数据通过视图加载函数的第二个参数中的数组或对象从控制器传递到视图。例如:

$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

$this->load->view('blogview', $data);

更多信息here

答案 1 :(得分:2)

在视图页面上传递变量的正确方法如下所示

$this->load->view("message", $data);

您的代码中的问题是您在

中使用它
$this->load->view("v_bukutamu, $data");

这种方式,你应该按照下面给出的方式使用它

$this->load->view("v_bukutamu", $data);

答案 2 :(得分:1)

只需更改

即可
$this->load->view("v_bukutamu, $data");

$this->load->view('v_bukutamu', $data);

使用单引号而不是双引号