我有一个编辑视图,其网址为/ group / edit / 1,其中1是动态的组ID。
我正在将控制器中的表单数据验证为:
if ($this->form_validation->run() == FALSE)
{
$this->load->view('group/edit', $data);
}
如何将id参数“1”传递给此视图?
以下选项不起作用,因为网址必须是group / edit / 1
$this->load->view('edit', $data);
答案 0 :(得分:2)
你在考虑这个错误。您希望拥有一个名为edit.php的视图并将数字1传递给它,或者更多的是,您希望从模型中获取1的数据并将模型的返回值传递到视图中。考虑一下:
<强>控制器强>
function edit($id)
{
$data['item_info'] = $this->whateverModel->getItem($id);
$this->load->view('edit', $data);
}
然后在编辑视图中,您可以参考如下数据:
查看强>
echo $item_info['id'];
echo $item_info['name']; //or whatever you pass back from the model
答案 1 :(得分:0)
这是你的意思吗?
$this->load->view('group/edit/'.$parameter, $data);
这样可以加载1
,因为您只是定义了VIEW文档的路径
根据CodeIgniters参考,这是格式:
$this->load->view('folder_name/file_name');
http://codeigniter.com/user_guide/general/views.html
不确定您是否对路由与视图感到困惑,这是一个快速的区别:
如果你想要http://www.example/group/edit/10 那么你需要一个路线设置,而不是一个视图。
如果您需要http://www.example/并显示页面main.php(在您的views文件夹中)中的内容,那么您可以在主控制器中执行$this->load->view('main');
。
答案 2 :(得分:0)
这就是我在做的事情。这可以接受吗?
控制器操作:
function edit($id)
{
$group_q = $this->db->query("SELECT * FROM groups WHERE id = ?", array($id));
$group_data = $group_q->row();
/* Form fields */
$data['name'] = array(
'name' => 'name',
'id' => 'name',
'value' => $group_data->name,
);
$options = array("A", "B", "C", "D");
$data['group_parent'] = $options;
$data['group_parent_status'] = $group_data->parent_id;
$data['group_id'] = $id;
/* Form validations */
$this->form_validation->set_rules('name', 'Name', 'trim|required|min_length[2]');
if ($this->form_validation->run() == FALSE)
{
if ($this->input->post('submit', TRUE))
{
$data['name']['value'] = $this->input->post('name', TRUE);
$data['group_parent_status'] = $this->input->post('group_parent', TRUE);
}
$this->load->view('group/edit', $data);
}
else
{
$data_name = $this->input->post('name', TRUE);
$data_parent_id = $this->input->post('group_parent', TRUE);
$data_id = $id;
if ( ! $this->db->query("UPDATE groups SET name = ?, parent_id = ? WHERE id = ?", array($data_name, $data_parent_id, $data_id)))
{
$this->session->set_flashdata('error', "Error");
$this->load->view('group/edit', $data);
} else {
$this->session->set_flashdata('message', "Success");
redirect('account');
}
}
return;
}
查看文件:
<?php
echo form_open('group/edit/' . $group_id); /***** NOTE THIS STEP *****/
echo "<p>";
echo form_label('Name', 'name');
echo "<br />";
echo form_input($name);
echo "</p>";
echo "<p>";
echo form_label('Parentp', 'group_parent');
echo "<br />";
echo form_dropdown('group_parent', $group_parent_active);
echo "</p>";
echo form_hidden('group_id', $group_id);
echo form_submit('submit', 'Submit');
echo form_close();
&GT;