2015-10-09 24 views
0

在继续我的代码之前,我提前道歉。我刚开始学习树枝和symfony。传递数组值循环TWIG + symfony

好的,所以我有一个控制器呈现一个简单的html.twig。我卡在哪里是在for循环中传递值的语法。让我告诉你我有什么:

控制器:

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 

class DefaultController extends Controller 
{ 
/** 
* @Route("/", name="homepage") 
*/ 
public function indexAction(Request $request) 
{ 
    // replace this example code with whatever you need 
    return $this->render('default/mine.html.twig', array(
     'user_name' => 'trolol', 
     'one_li' => 'Learn Symfony', 
     'two_li' => 'Learn Controller', 
     'three_li' => 'Learn Twig', 
     'four_li' => 'Eat', 
     'nav' => array(
      '1':'11', 
      '2':'22' 
     ) 
    ); 
}; 
} 

嫩枝:

<p>Welcome <h2>{{ user_name }}</h2></p> 
    <p> To Do: 
    <br /> 
    <ul> 
     <li>{{ one_li }}</li> 
     <li>{{ two_li }}</li> 
     <li>{{ three_li }}</li> 
     <li>{{ four_li }}</li> 
    </ul> 
    <br /> 
    <ul id="nav"> 
     {% for link,text in nav %} 
      <li><a href="{{ link }}">{{ text }}</a></li> 
     {% endfor %} 
    </ul> 

如果我删除了树枝和控制器的环路的一部分,它按预期工作。所以现在,我一直在搞清楚我正在尝试做什么的语法。对我如何完成我失败的任何帮助?

回答

1

取而代之的是

'nav' => array(
      '1':'11', 
      '2':'22' 
     ) 

您必须使用此:

'nav' => array(
      '1' => '11', 
      '2' => '22' 
     ) 

你的枝杈代码看起来还好。你不能像你那样在PHP中定义数组。

编辑:看起来像你有一些错别字。尝试使用此代码:

<?php 
namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/", name="homepage") 
    */ 
    public function indexAction(Request $request) 
    { 
     // replace this example code with whatever you need 
     return $this->render('default/mine.html.twig', array(
      'user_name' => 'trolol', 
      'one_li' => 'Learn Symfony', 
      'two_li' => 'Learn Controller', 
      'three_li' => 'Learn Twig', 
      'four_li' => 'Eat', 
      'nav' => array('1' => '11', '2' =>'22') 
     )); 
    } 
} 
+0

我早些时候尝试过,但我得到CRITICAL - 致命的解析错误:语法错误,意外的';'在线25 ///如果我删除了;我得到一个意外的错误}等等。 – user1830833

+0

编辑我的答案。检查它 – viktor77

+0

哦,哇。我错过了一个关闭)在那里。非常感谢你。自从我们谈论这个问题以来最后一个问题。如果我想通过这样的

  • {{ text }} {{ third }}
  • 请问语法是一个比较多,所以什么东西? 'nav'=> array( '1'=>'11'=>'111', '2'=>'22'=>'222' )) – user1830833