2017-05-11 59 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>