【问题标题】:error: Too few arguments to function Campaign::camp_detls(), 0 passed exactly 1 expected错误:函数 Campaign::camp_detls() 的参数太少,0 正好传递 1 预期
【发布时间】:2018-10-26 06:38:20
【问题描述】:

我有一个表名 tbl_campaign_detail,其中 blogger_IDCampaign_id 作为 外键 添加了一些其他领域..

我想从这个表中删除记录..当我执行删除时,它删除了记录但也给出了错误,

错误:

类型:ArgumentCountError

消息:函数 Campaign::camp_detls() 的参数太少,在第 532 行的 D:\XAMPP\htdocs\bms\system\core\CodeIgniter.php 中传递了 0,而预期正好是 1

文件名:D:\XAMPP\htdocs\bms\application\controllers\Campaign.php

行号:35

它运行良好,但也显示此错误...

这是我的模型:

public function camp_detl_delete($did){

    $this->db->where('detail_id', $did);
    $this->db->delete('tbl_campaign_detail');
    if($this->db->affected_rows() > 0){
        return true;
    }else{
        return false;
    }
}

控制器:

public function camp_detl_delete($id){
    $result = $this->cm->camp_detl_delete($id);
    if($result){
        $this->session->set_flashdata('success_msg', 'Record deleted successfully');
    }else{
        $this->session->set_flashdata('error_msg', 'Faill to delete record');
    }
    redirect(base_url('campaign/camp_detls/')); //this should be directed to particular id of camp_detls
}

并查看:

$did = $cmp->detail_id;
<a href="<?php echo base_url('campaign/camp_detl_delete/' .$did); ?>" onclick="return confirm('Do you want to delete this record?');">
                    <span class="glyphicon glyphicon-trash"></span>
                </a>

但它显示控制器第 35 行中提到的错误的地方是:

function camp_detls($id){
    $data['camps'] = $this->cm->camp_detailByID($id);
    $data['campaign'] = $this->cm->getCampaignsById($id);
    $data['blogger'] = $this->cm->getAllBloggers();
    $data['cat'] = $this->cm->getAllCategory();
    $this->load->view('layout/header');
    $this->load->view('campaign/campaign_detail', $data);
    $this->load->view('layout/footer');
}

请帮忙,我怎样才能消除这个错误? 我只想简单地删除它。

【问题讨论】:

  • 你能提供你调用camp_detls()的代码吗?这就是错误所指的方法。
  • 我不明白//this should be directed to particular id of camp_detls ...你说要删除id为1的记录,现在记录被删除了,你为什么要回到id 1?它已经不存在了。
  • 谢谢兄弟... base_url('campaign/camp_detls/' . $id) 这东西成功了
  • Alex 实际上是一个内页...外页也是基于 id.. 所以我希望我可以删除记录并显示页面..

标签: php mysql codeigniter runtime-error codeigniter-3


【解决方案1】:

消息:函数 Campaign::camp_detls() 的参数太少,0 通过(...)

这个错误对你来说意味着你定义的函数 (camp_detls()) 需要 $id,因为没有传递任何参数。

我想问题出在这条线上:

redirect(base_url('campaign/camp_detls/')); //this should be directed to particular id of camp_detls

正如评论所暗示的那样,但请看。在这里你想重定向到特定的camp_detls,但你没有提供$id

【讨论】:

  • 我在这里添加了刷新,如重定向(base_url('campaign/camp_detls/','refresh'));但现在它不显示错误并完美删除记录。但是当我按下删除按钮时,它什么也不做,直到我刷新页面......
  • 简单地说:按下删除它删除了记录,但仍然记录显示在页面上,直到我刷新页面...
  • 你可以尝试使用base_url('campaign/camp_detls/' . $id) 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2018-05-23
  • 2019-04-21
相关资源
最近更新 更多