我在一個網站上使用了.twig模板,但是我需要在幾個視圖上使用邏輯很狡猾。我不認爲樹枝可以處理這個問題,並且它是PHP中的一塊蛋糕。 (我不會解釋這是什麼的細節,只需知道它在PHP中的簡單性,而且我已經有了代碼)。問題是,我可以在.twig類型的基本模板或父模板中包含.PHP模板嗎?在.php模板中包含一個.twig基本模板
例以下(不工作) - blah.html.php是它擴展了base.html.twig模板模板...
/一些/ web /目錄/軟件包名/資源/視圖/嗒嗒/ blah.html.php
<?php $view->extend('::base.html.twig') ?>
<?php $view['slots']->set('title', 'Welcome to nowhere!') ?>
<?php $view['slots']->start('body') ?>
<div id="body">
html stuff here, blah blah blah...
<?php .... ?>
complex php and html stuff, and so on...
</php end....?>
you get the idea...
</div>
<?php $view['slots']->stop() ?>
在瀏覽器上面的代碼使得在基片模板在瀏覽器的文本中的所有代碼.twig(IE它不會由模板引擎執行)。
PS - 是的,我有兩個.twig和.PHP在app /配置/ config.yml
templating: { engines: ['twig', 'php'] }
好吧,這裏是的 「複雜」 的東西的細節... 設置這是從一個版本這是編碼在Symfony的1.4的網站採取的 - 它正在升級的Symfony 2,我們要利用一切.twig
<?php foreach ($all_items as $item): ?>
<tr>
<td valign="top">
//<?php include_partial('global/item', array('item' => $item)) ?>
<<< some code snipped out here >>>
<td valign="top">
<table border="1" width="100%">
<?php echo $form->renderFormTag('memberitems/additem') ?>
<?php echo $form['item_id']->render(array('value' => $item->getIid())) ?>
<?php echo $form['user_id']->render(array('value' => 1)) ?>
<?php echo $form['_csrf_token'] ?>
<tr>
<td width="50" colspan="2" align="center">Quantity<br><?php echo $form['quantity']->render() ?></td>
<td width="50" colspan="2" align="center">Amount<br><?php echo $form['value']->render() ?></td>
<td width="50" colspan="2" align="center"><input type="submit" value="Add"></td>
</tr>
</form>
<<< here is a complex portion, we're declaring a variable with a value >>>
<<< cant do this with twig - from what I know... >>>
<?php // determine if item is in registry - if so display "Currently Asking For:" ?>
<?php $is_in_registry = false; ?>
<?php foreach($member_items as $m_item): ?>
<?php if($m_item->getIid() == $item->getIid()): ?>
<?php if($is_in_registry == false): ?>
<?php $is_in_registry = true; ?>
<tr>
<td width="50" colspan="6" align="center"><br>Currently Asking For:</td>
</tr>
<?php endif ?>
<?php echo $form->renderFormTag('memberitems/removeitem') ?>
<?php echo $form['item_id']->render(array('value' => $item->getIid())) ?>
<?php echo $form['user_id']->render(array('value' => 1)) ?>
<?php echo $form['id']->render(array('value' => $m_item->getMIid())) ?>
<?php echo $form['_csrf_token']->render() ?>
<tr>
<td width="50" colspan="4" align="center">
<?php echo $m_item->getMIqty()." @ ".$m_item->getMIval() ?>
</td>
<td width="50" colspan="2" align="center"><input type="submit" value="Remove"></td>
</tr>
</form>
<?php endif ?>
<?php endforeach ?>
什麼樣的複雜的東西?你可以把它放在一個小枝函數或宏。 – solarc 2012-01-13 19:14:41
卡洛斯 - 我已經更新了一些關於複雜東西的細節問題......這只是我稱之爲複雜東西的一個例子,複雜的我指的是對.twig複雜,因爲我不認爲樹枝被設計爲處理邏輯這個。 (我可能是錯的)。 – ElasticThoughts 2012-01-13 19:24:37