Nasıl Symfony'de düzenine Eylemden bir parametresi iletebilirsiniz

4 Cevap php

Küresel layout.php dosyası her sayfa için etiketleri içerir:

<body> 
    <?php echo $sf_content ?>
</body>

Ancak sitenin tüm iç HTML sayfaları için, bir sınıf gövde etiketi uygulanır:

 <body class="inner-page"> 
    <?php echo $sf_content ?>
 </body>

Nasıl farklı şablonlardan düzene bir sınıfta geçebilir?

4 Cevap

sizin layout.php içinde

<body <?php if (!include_slot('body_id')): ?>id="default"<?php endif; ?>>

şablonlarınızda:

<?php slot('body_id') ?>id="bla"<?php end_slot(); ?>

veya

<?php slot(
  'body_id',
  sprintf('id="%s"', $sf_params->get('module')))
?>

İşte Symfony 1.2 + ile kullanılan çözümdür

Eylem setSlot () kullanın:

$this->getResponse()->setSlot('home_page', 'yes');

Sonra Düzeni get_slot () kullanın:

<body class="<?php echo has_slot('home_page') ? 'home-page' : 'inner-page' ?>">

Çoğu MVC çerçeveler, size düzen değişkenleri size görünüm dosyalarına erişmek aynı şekilde erişebilirsiniz.

So, if you did something like $this->view->my_data=10; in the control. You can access it in the layout by: echo $this->my_data.

Bu senfoni şekilde ayarlamak, sahte kod oldu.

Bunu normal bir görünüm dosyadan yapardım aynı şekilde yapmak% 90 eminim. Yani sürece eylem değişkeni ayarlamak gibi, layout.php dosyasından erişilebilir olmalıdır.

Lütfen eylem:

$this->body_class = "xxx";

Layout.php yılında

<body class="<?php echo $body_class?>">

Emin $ body_class ayarlanır yapmak için bazı kontrolleri çalıştırmak için emin olun.