2017-04-03 4 views
-3

です。私のtplでこのfunktionを呼び出そうとしていますが、エラーメッセージが表示されます: Notice:/ var/www/virtual/www。 eless.de/ivanovm/lib/data/Contract.class.php on line 342htmlspecialchars()は、パラメータ1が文字列になることを想定しています。配列はPHP

警告:htmlspecialchars()は、パラメータ1が文字列であること、/var/www/virtual/www.eless.de/で指定された配列を期待しています。ライン135 上/ d9e0e5ca75d171cae06b57137aa1475b7f24e533_2.file.contractList.tpl.phpコンパイルivanovm /テンプレート/(ライン135が空である)、ここで

public function getYearlyConsumption() 
    { 
     $yearlyConsumption = []; 
     $idx = 0; 

     //company bestimmen und zugehörige consumption points aufrufen 
     $company = System::getUser()->getCompany(); 
     $consumptionPoints = $company->getConsumptionPoints(); 

     foreach ($consumptionPoints as $consumptionPoint) { 
      if ($consumptionPoint->status == 1) { 
       $yearlyConsumption[$idx] += $consumptionPoint->getYearlyConsumptionInt(); 
       $idx++; 

      } 
     } 
     return $yearlyConsumption; 
    } 

はで呼び出しです私のテンプレート(この間違いは、私は上記のコードを呼び出すようにしようとしているすべてのfunnctionにポップアップ表示される一例です

{foreach from=$data item=item} 
       <tr> 
        <td> 
         <a href="{System::getLink('contractView')}"><input type="button" style="text-align: center" 
                      width="200em" 
                      value="&raquo;{$item->contractID}&laquo;"></a> 
        </td> 
        <td> 
         {$item->date|date_format:"%d.%m.%Y"} 
        </td> 
        <td> 
         {$item->selectedPrice} 
        </td> 
        <td> 
         {$item->getYearlyConsumption()} 
        </td> 
        <td> 
         {$item->getConsumptionPointsCount()} 
        </td> 
        <td> 
         {if $item->status == 0} 
          <span {literal}style="background-color:#ff9933"{/literal}>Wird Bearbeitet</span> 
         {/if} 
         {if $item->status == 1} 
          <span {literal}style="background-color:#33cc33"{/literal}>Abgeschlossen</span> 
         {/if} 
         {if $item->status == 2} 
          <span {literal}style="background-color:#ff0000"{/literal}>Stoniert</span> 
         {/if} 
        </td> 
       </tr> 
      {/foreach} 
+0

'return $ yearlyConsumption'は配列を返します。私はテンプレートエンジンがそれに関係するとあなたが期待したことを理解していません。 – apokryfos

+0

私は今までにテンプレートを使用したことがありませんでした。スマートで私のクラスから関数を呼び出すことができました..それは可能でしょうか? – Smuka

+0

はい、可能ですが、関数は配列を返すページ(例:文字列、整数、浮動小数点数)に書き込むことができるものを返さなければならないため、何らかの形でそれを平坦化する必要があります。 – apokryfos

答えて

0

getYearlyConsumption()は配列を返し、あなたは{}でそれを含む文字列として配列を表示しようとしています。 {}タグはhtmlspecialchars()関数を呼び出します。

+0

私は自分のコードで問題を抱えています。 foreachの代わりにセクションで試してみます – Smuka

+0

これを試してみてください: {foreach from = $ item-> getYearlyConsumption()item = el} {$ el} {/ foreach} –

関連する問題