2017-05-11 42 views
1

我在新的Prestashop:我想在一个TPL文件,以显示我的查询结果,而我得到这个错误:的Prestashop:注意:未定义指数:PRODUITS

Notice: Undefined index: produits

这是我的控制器代码:

class AdminStatproduitController extends ModuleAdminController 
{ 
    public function init() { 
     parent::init(); 
    } 

    public function initContent() 
    { 
     parent::initContent(); 

     $products = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity 
              FROM `'._DB_PREFIX_.'product` pp 
              LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product 
              LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product 
              WHERE pp.cache_is_pack =0 
              ORDER BY pps.quantity ASC 
              LIMIT 3'); 
     $pack = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity 
              FROM `'._DB_PREFIX_.'product` pp 
              LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product 
              LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product 
              WHERE pp.cache_is_pack =1 
              ORDER BY pps.quantity DESC 
              LIMIT 3'); 
     $smarty = $this->context->smarty; 
     $content = $smarty->fetch(_PS_MODULE_DIR_ . 'statproduit/views/templates/admin/statproduit.tpl'); 
     $this->context->smarty->assign(array('produits'=>$products, 
             'pack'=> $pack, 
             'content' => $this->content . $content)); 
} 

,这是我的TPL代码

<section> 
    <div id="formAddPaymentPanel" class="bootstrap panel"> 

     <form id="formAddPayment" method="post"> 
      <div class="table-responsive"> 
       <table class="table"> 
        <thead> 
        <tr> 
         <th><span class="title_box ">Id Produit</span></th> 
         <th><span class="title_box ">Nom Produit </span></th> 
         <th><span class="title_box ">Quantité Produit</span></th> 
         <th><span class="title_box ">Pack Choisie</span></th> 
         <th></th> 
        </tr> 
        </thead> 
        <tbody> 
        {foreach from=$produits item=produit} 
        <tr> 
         <td>{produit} </td> 
         <td>product.name</td> 
         <td>product.quantity</td> 
         <td>delete</td> 


        </tr> 

        </tr> 
        {/foreach} 
        </tbody> 
       </table> 
      </div> 
     </form> 
    </div> 
</section> 

任何建议?

感谢

+0

首先做smarty assign,然后smarty fetch。 – sadlyblue

+0

它生成此错误: 上线20 语法错误模板 “/projet/PrestaShop/modules/statproduit/views/templates/admin/statproduit.tpl” “​​{} produit.id_product” - 意外 “” ,预计其中的一个:“}” –

回答

0

只是改变这个控制器:

$this->context->smarty->assign('produits',$products); 
    $this->context->smarty->assign('pack',$pack); 

    $content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . 'statproduit/views/templates/admin/statproduit.tpl'); 
    $this->context->smarty->assign('content',$this->content . $content); 
0

的完整代码:

public function initContent() 
{ 
    parent::initContent(); 

    $products = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity 
              FROM `'._DB_PREFIX_.'product` pp 
              LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product 
              LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product 
              WHERE pp.cache_is_pack =0 
              ORDER BY pps.quantity ASC 
              LIMIT 3'); 
    $pack = Db::getInstance()->ExecuteS('SELECT pp.id_product, ppl.name, pps.quantity 
              FROM `'._DB_PREFIX_.'product` pp 
              LEFT JOIN '._DB_PREFIX_.'product_sale pps ON pps.id_product = pp.id_product 
              LEFT JOIN '._DB_PREFIX_.'product_lang ppl ON ppl.id_product = pp.id_product 
              WHERE pp.cache_is_pack =1 
              ORDER BY pps.quantity DESC 
              LIMIT 3'); 
    $this->context->smarty->assign(array('produits'=>$products, 
             'pack'=> $pack)); 
    $content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . 'statproduit/views/templates/admin/statproduit.tpl'); 


} 

而对于第三方物流:

<form id="formAddPayment" method="post"> 
    <div class="table-responsive"> 
     <table class="table"> 
      <thead> 
      <tr> 
       <th><span class="title_box ">Id Produit</span></th> 
       <th><span class="title_box ">Nom Produit </span></th> 
       <th><span class="title_box ">Quantité Produit</span></th> 
       <th><span class="title_box ">Pack Choisie</span></th> 
       <th></th> 
      </tr> 
      </thead> 
      <tbody> 
      {foreach from=$produits item=produit} 
      <tr> 
       <td>{$produit.id_product} </td> 
       <td>{$produit.name}</td> 
       <td>{$produit.quantity}</td> 
       <td>delete</td> 
      </tr> 
      {/foreach} 
      </tbody> 
     </table> 
    </div> 
</form>