gpt4 book ai didi

php - Codeigniter 中缺少参数让我发疯

转载 作者:行者123 更新时间:2023-11-29 11:41:33 25 4
gpt4 key购买 nike

大家好,根据我的知识,快速提问,以下语句没有任何问题,因为代码执行没有错误,但它没有更新数据库中的信息,这是我的模型和 Controller 代码

Controller :

    public function update_canvas($id){
$this->check_is_validated();
$data['success'] = 0;
if ($_POST) {
$data = array(
'canvas_name' => $this->input->post('canvas_name')
);
$this->Art_m->edit_canvas($id,$data);
$data['success'] = 1;
redirect(base_url() . 'admin/art');
}else {
$data['arty'] = $this->Art_m->get_canvas($id);
$data['title'] = 'Edit your Art Works';
$data['content'] = 'admin/art/edit_canvas';
$this->load->view('templates/dashboard/template', $data);
}
}

型号代码:

    function edit_canvas($id,$data)
{
$this->db->where('ID', $id);
$this->db->update('art', $data);
}

因此,当我运行脚本并尝试更新信息时,我的错误日志给出以下内容,但我看不到问题所在,因为它需要 ID 才能正确更新?

日志错误:

ERROR - 2016-02-29 16:25:48 --> Severity: Warning --> Missing argument 1 for Art::update_canvas() C:\wamp\www\alisonbull\application\modules\art\controllers\Art.php 80
ERROR - 2016-02-29 16:25:48 --> Severity: Notice --> Undefined variable: id C:\wamp\www\alisonbull\application\modules\art\controllers\Art.php 87

请指教

最佳答案

现在我的评论已被确认为正确,将其写为答案:

问题是调用该函数时没有在 $id 中指定值,因为 $id 的值是通过 $_POST 发送的。

在CodeIgniter application/config/routes.php中,会有这样一行:

$route['art/update/(:any)'] = 'art/update_canvas/$1';

这告诉 CodeIgniter,例如,当请求来自 art/update/42 时,它应该调用 art Controller ,即该 Controller 中的函数 update_canvas,并将 42 作为参数传递给 Controller ​​。

当您在 $_POST 请求中提交 ID 时,该请求未正确路由,因此未设置 $id。这会导致更新失败,因为它无法使用空 ID 进行更新

关于php - Codeigniter 中缺少参数让我发疯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com