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

まずスマートな割り当てを行い、次にスマートなフェッチを行います。 "" 予期しない - ライン20上のテンプレートの 構文エラー "/projet/PrestaShop/modules/statproduit/views/templates/admin/statproduit.tpl" "​​{produit.id_product}": – sadlyblue

+0

、このエラーを生成します、次のうちの1つ: "}" –

答えて

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'); 


} 

と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> 

関連する問題