【问题标题】:Codeigniter model pass value controller to viewCodeigniter 模型传值控制器查看
【发布时间】:2014-08-12 15:01:29
【问题描述】:

餐桌产品:id、product、lining、... 表 tbl_lining:id、文章、描述

型号

public function getliningsale($id)
{
    $this->db->select('*');
    $this->db->from('products');
    $this->db->join('tbl_lining', 'products.lining=tbl_lining.id', 'left');
    $this->db->where('products.id', $id);  // Also mention table name here
    $query = $this->db->get();    
    if($query->num_rows() > 0)
        return $data->result();
}

控制器

function liningsale($id)
{   

    $data['liningsale'] = $this->sales_model->getliningsale($id);
    $this->load->view('add', $data);
}

查看

echo '<td><input class="span1 tran2" name="lining\'+ count +\'" type="text"';
echo 'value="';
foreach ($liningsale as $valor) {
    echo $valor->article;
    echo '-';
    echo $valor->description; 
    echo '">';
}

echo '</td>';

这不显示任何记录。 我尝试了几种方法都没有成功。 有人可以帮忙吗?

【问题讨论】:

  • 你能在 $this->db>-get() 之后发布var_dump($query-&gt;num_rows());。您也可以使用echo $this-&gt;db-&gt;last_query(); 并在 PhpMyAdmin 中测试您的查询。
  • int(0) 这是什么意思? 0 行? SELECT * FROM (products) LEFT JOIN tbl_lining` ON products.lining=tbl_lining.id WHERE tbl_lining.id IS NULL`
  • 在 PhpMyAdmin 中,查询没有找到任何记录...现在我知道这是查询的问题。我做错了什么?
  • 如您所见,您的 ID 为空。因此,您不会将任何 ID 传递给您的模型函数。调用控制器时检查您的 URL 中是否有 ID。
  • 是的,我明白了这是一个通过 jquery 加载数据的订单表(请参见此处的图片goo.gl/6Jl7XO)该脚本已经可以正常工作了。只需要向它添加更多信息。仅查找存储在每列中的 ID 而不是 JOIN,(衬里/皮革/其他)查询成功,每行仅显示一个 ID。问题在于$this&gt; db&gt; where ('products.id', $ id); 进行JOIN。我不明白你的提示。可以更客观一点吗?谢谢

标签: codeigniter view model controller


【解决方案1】:

在您的模型中,您需要返回$query 结果。

此时您正试图返回名为$data 的变量的结果集,我认为该变量不存在!!

尝试将return $data-&gt;result(); 更改为return $query-&gt;result();

希望有帮助!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多