【问题标题】:Passing POST value from VIEW to CONTROLLER to MODEL in Codeigniter在 Codeigniter 中将 POST 值从 VIEW 传递到 CONTROLLER 到 MODEL
【发布时间】:2012-10-14 23:18:04
【问题描述】:

好的,我删除了验证和其他代码,以使这个示例尽可能透明。我无法为我的模型POST VAR。

查看

<?php echo form_open('invoice'); ?>
  <?php echo validation_errors(); ?>
  <?php echo form_input('order_num', $this->input->post('order_num')); ?>
  <?php echo form_submit('submit','submit'); ?>
<?php echo form_close(); ?>

控制器

public function invoice()
  {
  $order = $this->input->post('order_num');
  $this->General_Model->get_customer_order($order);
  }

型号

function get_customer_order($order)
  {
    . . .
  $this->db->where('client_orders.id', $order);
  $result = $this->db->get('client_orders');
    . . .

  }

好的 基本上你在表格上输入一个订单号。然后它转到进行验证的控制器(我在这里删除它以保持示例简单),最后它将数据传递给在数据库上运行查询并返回 $result 的模型。

但是,我得到的不是我想要的输出:致命错误:在非对象上调用成员函数 get_customer_order() 并且遇到 PHP 错误严重性:通知消息:未定义属性:Account_dashboard ::$General_Model

我在这里做错了什么?感谢您的帮助。

【问题讨论】:

  • $this-&gt;input-&gt;post('order_num') 是否每次都会检查到FALSE? (例如if ($this-&gt;input-&gt;post('order_num') === FALSE))?你说你去掉了验证来简化它,但这可能是你的问题所在。
  • @TimPost 不,它没有,为了我的理智,我尝试在没有任何验证的情况下运行表单,就像我上面给出的示例一样,我仍然得到同样的错误:/
  • 你能发布模型的前几行(如果有的话,直到构造函数)和你在控制器中用来加载它的代码?
  • 是的,去掉代码以使示例透明似乎已经去掉了问题代码。您发布的内容没有任何问题。

标签: php codeigniter


【解决方案1】:

确保在控制器中加载模型:

$this->load->model('General_Model');

控制器线应该

$data['order'] = $this->General_Model->get_customer_order($order);

然后你将 $data 传递给视图。

【讨论】:

  • 是的,我正在加载它..这不是这里的问题..这真的让我绞尽脑汁..
  • 他正在获得“对非对象成员函数的调用”
  • 那里有些东西不工作,它试图将 General_Model 读取为字符串而不是模型,你在哪里加载模型?
  • @RickCalder 是的,我现在明白了(我认为他在宽限期内编辑了帖子),或者我之前没有注意到。
  • @Rick 好吧,我的错误是我正在加载 '$this->load->model('General_model');'这是导致上述错误的原因,我没有意识到'm'是小写的-->但是现在我得到$order是未定义的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 2015-06-30
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多