2012-02-12 11 views
1

ソーシャルネットワークのスタートアップがあり、スマートなテンプレートを統合する必要があります。私はPHPの配列すなわち$profile_tasksを持っています。 $profile_tasksの要素には、次のプロパティがあります。スマートプリントのコメントは多次元配列で間違った値を示します

[0] => Array 
    (
     [name] => hello 
     [location] => 
     [date] => 
     [time3] => 0 
     [time1] => 
     [state] => 0 
     [like_count] => 0 
     [comment_count] => 2 
     [does_id] => 91 
     [comments] => Array 
      (
       [sender_id] => 27 
       [content] => khhkhjkkhk 
       [time] => 2012-02-09 20:06:13 
       [user_name] => aacanakin 
       [picture_url] => http://graph.facebook.com/fb_user_name/picture 
      ) 

    ) 

私のスマートテンプレートファイルでは、このような配列$profile_tasksを割り当てました。私の.tplファイルで

$smarty->assign("profile_tasks", $profile_tasks); 

[name]または[location]フィールドなどの属性のいずれかを印刷するには問題はありません。名前印刷には次のコードがあります。

{foreach name=outer item=profile_task from=$profile_tasks} 

    {$profile_task.name} 
    {$profile_task.locatin} // these two works correctly 

    {foreach name=inner item=comment from=$profile_task.comments} 

     {comment.user_name} // these three statements doesn't return correct values 
     {comment.picture_url} 
     {comment.content} 

    {/foreach} 

    {/foreach} 

私は前に述べたように、comments配列内の値が正しくありません。内側のループで何を変更する必要がありますか?どんな助けもありがとう。

答えて

1

ちょうどあなたがあなたのコメントの配列は、あなたが希望、複数のサブアレイを持っていた場合

{foreach name=inner item=comment from=$profile_task.comments} 

を必要といけない

{comments.user_name} // these three statements doesn't return correct values 
    {comments.picture_url} 
    {comments.content} 

を使用しています。

更新日: コメントは、コメントに基づいて更新されます。あなたの配列は、あなたのオリジナルコードが動作するためには、このようにする必要があります

[comments] => Array(
    [0] => Array 
     (
      [sender_id] => 27 
      [content] => khhkhjkkhk 
      [time] => 2012-02-09 20:06:13 
      [user_name] => aacanakin 
      [picture_url] => http://graph.facebook.com/fb_user_name/picture 
     ) 
    ) 

PS。サブノートでは、私は非常に早い段階で、デフォルトの{}をスマートタグとして使うことは、HTMLテンプレートページ上でjavascriptと一緒に喜んで共存できないので、本当に面倒です。私が使用するルートをあまりに遠くに行っていない場合は、

$left_delimiter -> '{['; 
$right_delimiter -> ']}'; 

を指定してください。つまり、どこでも{literal}タグの使用について心配する必要はありません。

+0

コメントに複数の値があります。これは私が内部のforeachを必要とする理由です – aacanakin

+1

コメントはあなたの配列に複数の値を持っていません。配列を修正するとコードが機能します。 –

+0

profile_tasks配列は複数のコメントを持つことができます。この例には複数のコメントは含まれていません。私は投稿を編集します。 – aacanakin