Twig Code для списка всех файлов, которые находятся в {{file_location}} Symfony2

До сих пор мне удалось отобразить "последний файл" в моем виде ветки, и все они поверх контроллера, который появляется на моей странице в первой строке перед заголовком. Теперь мне нужно отобразить все в виде веточки.

Это мой код:

контроллер

public function frmyfilesAction(Request $request)    { $session = $this->getRequest()->getSession(); $em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository('redlabLabelBundle:Users');
    if ($session->has('login')) 
    {
        $login = $session->get('login');
        $username = $login->getUsername();
        $password = $login->getPassword();
        $user = $repository->findOneBy(array('userName' => $username, 'password' => $password));
        $dir = $user->getServer();

        if ($dh = opendir($dir))
        {
            $store_array = array() ;
            while (($file = readdir($dh)) !== false)    
            {
                echo $file . "</br>";
                $store_array = $file;
            }
            $mefil = $store_array;
                                }
            closedir($dh);

            return $this->render('redlabLabelBundle:Advert:frmyfiles.html.twig', array('mifil'=> $mefil,'name' => $user->getFirstName(),'fhost' => $user->getServer());
        }
        return $this->render('redlabLabelBundle:Advert:radiofr.html.twig'); }

вид ветки

 {%block body %} <div class="container">
     <h2>Ici sont stoqués tous tes fichiers {{name}}</h2></br></br>     <h4>Mon Dossier {{fhost}}<h4>   </br>

     <a href="{{fhost}}{{mifil}}">{{mifil}} </a>    </br></br></br>     </br></br></br>

     </div>  <a href="{{path('redlab_platform_logout')}}"
     >Déconnection</a></br></br></br></br>
 {%endblock%}

-

Как мне вывести ВСЕ данные из цикла while в массив, чтобы я мог использовать их в представлении ветки?

2 ответа

Решение

Twig предназначен для визуализации представления, так как нет встроенной функции Twig для чтения имен файлов. Вы должны получить имена файлов в вашем контроллере (или, что еще лучше, в службе), а затем отправить данные на ваше усмотрение. И если вы действительно хотите использовать Twig, да, вам придется написать расширение Twig, но это очень, очень, очень плохая идея...

Окончательное решение, которое сработало, простое; просто замените веточку yiew следующим кодом:

{%block body %}
<div class="container">

    <h2>Ici sont stoqués tous tes fichiers {{name}}</h2></br></br>
    <h4>Mon Dossier {{fhost}}<h4>
    </br>

    {% for item in mifil %}
        <li><a href="{{fhost}}{{item}}">{{item}} </a></li>
    {% endfor %}

    </br></br></br>
    </br></br></br>
</div> 
<a href="{{path('redlab_platform_logout')}}" >Déconnection</a></br></br></br></br>
{%endblock%}
Другие вопросы по тегам