getProducts 然后获取每个产品的变化,并使用 Codeigniter 显示在表格视图中


getProducts then getVariations for each product and display in table view with Codeigniter

好的,我是编码新手。我将尽量清楚地提出这个问题。我希望实现下表行。

    <table>
    <tr>Product 1 without variations<tr>
    <tr>Product 2 with variations<tr>
       <tr class="variation">Variation 1 of Product 2<tr>
       <tr class="variation">Variation 2 of Product 2<tr>
    <tr>Product 3 without variations<tr>
    </table>

因此,在CodeIgniter中使用MVC模式,我需要知道如何实现这一点。理想情况下,我想创建最可重用的代码,在视图文件中使用最少的 PHP。右?

我想我的主要问题是,如何从视图中的 foreach 循环中将$productid返回到 $getVariations() 函数。或者更重要的是,这是最好的做事方式吗?

示例代码:

型:

    public function getProduct(){
              $query->this->db->query("select * from isc_products");
              return $query->result();

    public function getVariations($productid){
              $query->this->db->query("select * from isc_products_variations where variationproductid = $productid");
              return $query->result();

控制器:

    public function products() {
        $this->load->model("products");
        $data['products'] = $this->products->getProducts();
        $data['variations'] = $this->products->getVariations($productid);
        $this->load->view('view_products',$data);
        }

视图:

<!-- table data -->
    <?php foreach ($products as $product) : ?>
        <tr><td><?php echo $product->prodname; ?></td></tr>
        <?php foreach ($variations as $variation) : ?>
               <?php if($variation->parentproductid == $product->productid) : ?> 
                <tr class="variation"><td><?php echo $variation->optionname; ?></td></tr>   
           <?php endif; endforeach; ?>
        <?php endforeach; ?>

当您在数据库中查询数据时,请考虑在模型中联接产品和变体表。在您的模型中:

  $query->this->db->query("select * from isc_products x,isc_products_variations y where x.productid = y.variationproductid");

这将返回每个产品及其关联的变体。您可以直接获取此数据并将其发送到视图。