当前位置: 首页 > 知识库问答 >
问题:

使用存储过程将值从控制器传递到模型代码中心

轩辕华辉
2023-03-14

我对Codeigniter有意见。我试图将值从视图传递给控制器,它起作用了。但是当它从控制器传递到模型时有一个问题。它没有将任何值返回到视图中。

这是我的控制器:

 public function Edit2G() {
                $id = $this->uri->segment(3);
                $this->load->model("main_model");
                $data['fetch_data_2G_where'] = $this->main_model->fetch_data_2G_id($id);
                $data['id'] = $id;
                $data['title'] = "Update Data 2G";

                $this->load->view('templates/header');
                $this->load->view("pages/Update2G", $data);
                $this->load->view('templates/footer');
            }

这是模型

 function fetch_data_2G_id($id)
     {
         $get_2G_data_stored_proc = "CALL Get_2G_Data(?)";
         $data = array( 'id' =>$id);
         $query = $this->db->query($get_2G_data_stored_proc, $data);
         $result = $query->result_array();
         return $get_2G_data_stored_proc;
     }

这就是我的观点

<h2 align="center"><?=$title ?></h2>
<h3 align="center"><?=$id ?></h3>
<p align="center"><?php echo $fetch_data_2G_where['id'];?></p> //This is a test
<?php echo form_open('posts/update'); ?>
<input type="hidden" name="id" value="<?php //echo $fetch_data_2G_where['id']; ?>">
<div class="form-group">
    <label>Site ID</label>
    <input type="text" class="form-control" name="title" placeholder="add title" value="<?php //echo $fetch_data_2G_where['site_name'];?>">
</div>

这是存储过程的结果

id, id_site, site_name, bsc_name, bcf_id, vlan1, vlan2, status,status_vlan  

'1', 'COK008', 'Combat Batylon754','FBTIMIKA-1','BCF-0112', '3677', '3137', '', 'Metro E'

这是我得到的错误

遇到PHP错误严重性:警告

消息:非法字符串偏移量“id”

文件名:pages/Update2G。php

行号:3

回溯:

文件:C:\xampp\htdocs\DapotTimika\application\views\pages\Update2G。php行:3函数:\u错误\u处理程序

File: C:\xampp\htdocs\DapotTimika\应用程序\控制器\Pages.php行:46功能:视图

文件:C:\xampp\htdocs\DapotTimika\index。php行:315函数:需要一次

我错过了什么?

PS:存储过程只有一个用于返回/获取数据的参数(id)

共有2个答案

法弘壮
2023-03-14

谢谢你们的回答,我找到了答案。

我忘了将返回值从模型解析到数组中。模型和控制器中的代码很好。

这是我的查看代码

<?php
        if($fetch_data_2G_where->num_rows() > 0)
        {
            foreach($fetch_data_2G_where->result_array() as $data)
            {
        ?>

            <input type="hidden" name="id" value="<?php echo $data['id']; ?>">
            <div class="form-group">
            <label>Site ID</label>
            <input type="text" class="form-control" name="site_id" value="<?php echo $data['id_site'];?>">
<?php } ?>

结果如下

刁茂才
2023-03-14

在控制器中,打印以下行

$data['fetch_data_2G_where'] = $this->main_model->fetch_data_2G_id($id);
echo "<pre>"; print_r($data['fetch_data_2G_where']);

只是看看你的查询返回的结果是什么。然后从你的结果中,你可以分析并获得想要的结果。

 类似资料:
  • 我想从下拉菜单中选择一个产品类别选项,并显示具有该特定类别的产品。 以下是我认为的形式部分: 正如您所看到的,我通过onchange=“this.form.submit();(如果这不是一个好主意,请建议其他方法,我只是不想使用ajax,因为我还不太擅长它,不管怎样,建议更好的方法)。 然后在我的控制器中,我得到这个选项,并将其转换为数组,在我的模型中使用它。 控制器部分: 我的模型: 在这里我没

  • 问题内容: 以下是我的html模板: 下面是我的代码: 为什么我会收到“ 未定义 ”而不是“ 某些消息 ” 下面是一个小提琴 http://jsfiddle.net/j2K7N/27/ 问题答案: 您的代码几乎是正确的,但是这里有几个问题: 在这里,您从控制器传递函数,该函数带有一个未定义的参数,该参数会导致警报消息带有“未定义”文本。我建议将HTML代码修改为: 请注意,我将传递为变量而不是函数

  • 问题内容: 我一直想知道如何将所有存储过程放在源代码管理下的SQL 2000上。 我们将Subversion用于所有常规源代码,因此,如果有使用Subversion解决该问题的方法,那就更好了。 你有什么想法? 更新16-02-2009:这是我用来导出所有存储过程的vbs脚本: 问题答案: 就像其他人所说的那样,首先将每个存储的proc存储在一个单独的文本文件中,该文件受源代码控制。写一个脚本来删

  • 问题内容: 我试图通过ajax调用将模型传递给控制器​​。 我已经看过Laviak在以下问题中提供的答案,但无法使其正常工作。 运行ajax调用时,MODEL变量出现未定义的错误。我已经确认正在调用助手类,并且正在返回字符串。是否因为AJAX调用位于.js文件中?为什么未定义? 我的代码: Site.Master: 助手类: Javascript文件: 动作方法: 问题答案: 确保在主文件中定义变

  • 问题内容: 如何从代码传递大量参数(例如20+)到存储过程? 就像我们可以将所有参数分组在一个类对象中,然后将其传递给其他对象,但是在存储过程的情况下如何实现这一点。 目前,我必须创建20多个变量才能传递参数。 谢谢阿什瓦尼(Ashwani) 问题答案: 如果您使用的是SQL Server 2008,请使用表值参数。如果您不熟悉,它基本上允许您将表作为参数传递给存储过程。好处是您可以根据自己的需要

  • 我有使用Springboot和Thymeleaf模板编写的简单Web应用程序。报告控制器从表单接收数据并构建TestPlanReportReportACK对象,该对象作为模型属性添加如下: 我可以在“图表”thymeleaf模板中使用该数据并显示我需要的数据,但我需要在单击按钮时将完全相同的对象发送回控制器,但我得到TestPlanReportACK对象作为设置空值的参数。 以下是我的按钮在图表模