Php {{file_location}}Symfony2中所有文件列表的细枝代码

Php {{file_location}}Symfony2中所有文件列表的细枝代码,php,symfony,directory,twig,readdir,Php,Symfony,Directory,Twig,Readdir,到目前为止,我已经成功地在我的小树枝视图中显示了“最后一个文件”,并且所有文件都通过控制器显示,控制器显示在我的页面标题前的第一行。现在,我需要在细枝视图中显示所有 这是我的代码: 控制器 public function frmyfilesAction(Request $request) { $session = $this->getRequest()->getSession(); $em = $this->getDoctrine()->getEntityManag

到目前为止,我已经成功地在我的小树枝视图中显示了“最后一个文件”,并且所有文件都通过控制器显示,控制器显示在我的页面标题前的第一行。现在,我需要在细枝视图中显示所有

这是我的代码:

控制器

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'); }
公共函数frmyfilesAction(Request$Request){$session=$this->getRequest()->>getSession();$em=$this->getdoctor()->>getEntityManager();$repository=$em->getRepository('redlabelbundle:Users');
如果($session->has('login'))
{
$login=$session->get('login');
$username=$login->getUsername();
$password=$login->getPassword();
$user=$repository->findOneBy(数组('userName'=>$userName,'password'=>$password));
$dir=$user->getServer();
如果($dh=opendir($dir))
{
$store_array=array();
while(($file=readdir($dh))!==false)
{
echo$文件“
”; $store_array=$file; } $mefil=$store_数组; } closedir($dh); 返回$this->render('redlabLabelBundle:Advert:frmyfiles.html.twig',数组('mifil'=>$mefil,'name'=>$user->getFirstName(),'fhost'=>$user->getServer()); } 返回$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%}
{%block body%}
Ici sont stoqués tous tes fichiers{{{name}

Mon档案{{fhost}










{%endblock%}
--


如何从数组中的while循环中获取所有数据,以便在twig视图中使用它?

twig设计用于呈现视图,没有twig本机函数来读取文件名。 您应该在crontroller中获取文件名(在服务中甚至更好),然后将数据发送到视图。
如果你真的想用Twig来实现,是的,你必须写一个Twig扩展,但这是一个非常糟糕的主意…

Twig是用来呈现视图的,没有Twig本机函数来读取文件名。 您应该在crontroller中获取文件名(在服务中甚至更好),然后将数据发送到视图。 如果你真的想用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%}
{%block body%}
我的名字是{name}

Mon档案{{fhost}
{mifil%中项目的%s}
  • {%endfor%}









    {%endblock%}
    最终有效的解决方案很简单;只需将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%}
    
    {%block body%}
    我的名字是{name}

    Mon档案{{fhost}
    {mifil%中项目的%s}
  • {%endfor%}









    {%endblock%}
    {{file\u location}来自控制器并通过记录的IDI自动更改…在我的细枝视图中没有循环…并且…在我的控制器中,$mefil获取所有文件名,但只存储closedir之前的最后一个文件名…因此,当控制器渲染视图时,他只将最后一个传递给细枝文件,而细枝文件只有一个line witch说哦,我必须打印$mefil…我理解我的失败,但我正在搜索和搜索真相web就是找不到如何修复它请帮助我,如果你理解我的问题!{file_location}来自控制器并通过记录的IDI自动更改…在我的细枝视图中没有循环…并且…在我的控制器中,$mefil获取所有文件名,但只存储closedir之前的最后一个文件名…因此,当控制器渲染视图时,他只将最后一个传递给细枝文件,而细枝文件只有一个line witch说哦,我必须打印$mefil…我理解我的失败,但我正在搜索真相,网络无法找到解决方法,请帮助我,如果你理解我的问题!嗨,谢谢你,是的,通过控制器获得名称当然是最好的主意-我设法做到了,但我无法在我的视图中获得所有这些名称即使我把它们放在我的控制器中,当我在网上搜索解决方案时,所有的页面都告诉你如何用php来做,但用php很容易,只是不知道如何用Symfony来做…PS我已经重新编辑了我的问题,这样可能会更容易理解!@OseCrea如果你还没有这样做,我建议你阅读一下MVC模式,这是Symfony2/3的基础;Twig应该只显示在控制器中收集的数据。您好,谢谢您是的,在控制器上获得名称当然是最好的主意-我设法做到了,但我无法在我的视图中获得所有这些名称,即使我在控制器中获得它们,并且当我在web上搜索solu时所有的页面都在告诉你如何使用php实现这一点,但是使用php很容易,只是不知道如何使用Symfony实现……PS我已经重新编辑了我的问题,以便更清楚地理解!@OseCrea如果你还没有这样做,我建议你阅读一下MVC模式,这是Symfony2/3的基础;Twig应该只出现在t控制器中收集的数据。