【问题标题】:CodeIgniter 3 - Accessing data in a view from 2 db'sCodeIgniter 3 - 从 2 db 访问视图中的数据
【发布时间】:2016-06-10 12:58:15
【问题描述】:

为我的 nebie 之类的问题道歉,但我想在这里学到很多,MVC 和 CodeIgniter 的新手。

我正在构建一个简单的 CRUD,但如果你知道自己在做什么,我会觉得这是一件非常简单的事情。

我有一个用于将轮胎更新到数据库的视图到表“轮胎”中。在该视图中,我想显示保存在单独的数据库表“品牌”中的品牌下拉列表。在我的模型中,我有一类轮胎,其中我有一个功能:

public function get_tyres($id = FALSE)
{
if ($id === FALSE)
{
    $query = $this->db->get('tyres');
    return $query->result_array();
}
$query = $this->db->get_where('tyres', array('id' => $id));
return $query->row_array();
}

这允许我访问我的控制器中的轮胎数据并将数据发送到视图使用:

$data['tyres_item'] = $this->tyres_model->get_tyres($id);
$this->load->view('tyres/update', $data);

在我的视图中,我访问 $data['tyres_item'] 以便我可以使用 db 数据预填充表单。

但是

如何从数据库中访问品牌数据以构建我视图中所有品牌的下拉列表? 我有单独的品牌模型和控制器,但我无法在视图中访问它们。

我尝试添加

$data['brands'] = $this->brands_model->get_brands();

到我的轮胎控制器中的更新功能,但我知道这不起作用;因为我在轮胎控制器而不是品牌控制器中。

我怎样才能做到这一点,我知道我一定错过了一些简单的东西......

这是我的观点:以及我想要完成的:

     echo form_open('tyres/update');
    ?>

    <label for="tyre">Tyre</label>
    <input type="input" name="tyre"  value="<?=$tyres_item['tyre']?>" />

    <label for="brand">Brand</label>
<?php
    echo form_dropdown('brands', $data['brands']);
?>

...

编辑-我已将品牌模型添加到构造中,这很有帮助,我现在可以使用以下方法访问我的视图中的品牌数据:

echo form_dropdown('brands', $brands);

但它返回一个数组,所以我添加了以下内容:

echo form_dropdown('brands', $brands['brand']);

然后这会出错:

Message: Undefined index: brand

我又卡住了! 帮助。

【问题讨论】:

  • 使用echo form_dropdown('brands', $brands['COLUMN_NAME']);
  • 谢谢你,我试过了,我得到:未定义的变量:品牌

标签: php codeigniter model-view-controller


【解决方案1】:

知道了!

我需要遍历 db 结果然后将其添加到 form_dropdown :

foreach($brands as $brand)
    {
            $brand_list[$brand['id']] = ucfirst(htmlspecialchars($brand['brand']));
    } 

echo form_dropdown('brands', $brand_list, $tyres_item['brand']);

这可能对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    相关资源
    最近更新 更多