我在symfony中创建了一个项目,然后需要改变视图的模式,查了下,可以重新写个layout.php,然后在view.yml中修改即可,但是没有效果,请问是什么原因。

解决方案 »

  1.   

    什么叫视图的模式?我感觉你把概念搞混淆了。你是不是想修改模板?可以修改layout.php, 也可以修改apps\yourapps\modules\yourmodule\templates中的文件, 这个是替换layout.php中的$sf_content变量的。
      

  2.   

    LZ语焉不详。Symfony有一个主layout,然后有针对各个action的小layout。如果是要修改总体布局,那应该是layout.php。
      

  3.   

    生产环境跟开发环境好像用的不是view.yml,但生产环境用的是哪一个的呢,我修改layout后,开发环境是变了的,但生产环境还是没变。为什么
      

  4.   

    不应该有这个问题。你尝试一下symfony cc,清除一下缓存看看。
      

  5.   

    开发环境的控制器和产品环境的控制器是不一样的前者:
    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);后者:
    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
      

  6.   

    <?php 
     header("Content-type: text/vnd.wap.wml");
     echo '<?xml version="1.0" encoding="utf-8"?>';
    echo  '<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">';
    ?>
     <wml>
     <head>
     <meta http-equiv="Cache-Control" content="max-age=0"/>
     <meta http-equiv="Cache-control" content="no-cache"/>
     </head>
     <card id="test" title="test">
     <p>
    test
     </p>
     </card>
     </wml>这个是我的一个测试页面,在opera中能正常运行,但是我将其放在layout.php中,运行,不能正常显示,虽然两者的源代码是一样的。为什么
      

  7.   

    你这个代码貌似是wml的,不是传统的html文件。
      

  8.   

    Symfony的解决方法可以参见其官网的Jobeet教程。简单的说,就是要创建一个和你输出类型对应的action处理。教程中提到了RSS的输出,你可以参考。