{{file_location}} Symfony2 中所有文件列表的 Twig 代码
Twig Code for a List of all files which are in {{file_location}} Symfony2
到目前为止,我已经设法在我的树枝视图中显示 "the last file",并且所有这些都显示在我页面上 header 之前第一行的控制器上。现在,我需要在树枝视图中显示所有内容。
这是我的代码:
控制器
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 循环中的所有数据放入数组中,以便我可以在 twig 视图中使用它?
Twig 旨在呈现视图,没有 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%}
到目前为止,我已经设法在我的树枝视图中显示 "the last file",并且所有这些都显示在我页面上 header 之前第一行的控制器上。现在,我需要在树枝视图中显示所有内容。
这是我的代码:
控制器
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 循环中的所有数据放入数组中,以便我可以在 twig 视图中使用它?
Twig 旨在呈现视图,没有 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%}