我一直與管理生成器(推進版)有一些'問題'。列表視圖和表單視圖之間的HTML生成行爲是非常不同的,我想知道爲什麼,因爲與列表視圖相比,表單視圖更好地(和預期的一樣)工作。Symfony(Propel)管理生成器行爲 - 爲什麼它會像這樣工作?
我對 '編輯' 行動以下YAML,
edit:
actions:
custom: { confirm: 'Run this custom action?' }
_list: ~
_save: ~
這生成指定的自定義操作下面的HTML/PHP,
// Snip ...
<li class="sf_admin_action_custom">
<?php if (method_exists($helper, 'linkToCustom')): ?>
<?php echo $helper->linkToCustom($form->getObject(), array( 'confirm' => 'Run this custom action?', 'params' => array(), 'class_suffix' => 'custom', 'label' => 'Custom',)) ?>
<?php else: ?>
<?php echo link_to(__('Custom', array(), 'messages'), 'users/ListCustom?id='.$user->getId(), array()) ?>
<?php endif; ?>
</li>
// Snip ...
現在,如果我加入我的自定義行動的YAML列表視圖,
list:
object_actions:
custom: { confirm: 'Run this custom action?' }
_edit: ~
_delete: ~
我得到生成以下HTML,
// Snip ...
<li class="sf_admin_action_custom">
<?php echo link_to(__('Custom', array(), 'messages'), 'users/ListCustom?id='.$user->getId(), array()) ?>
</li>
// Snip ...
這裏有一些明顯的不同,我覺得很奇怪,
- 形式操作的代碼檢查,看是否有在幫助的方法,如果是使用它,回落到標準
link_to()
函數,如果沒有。但是,列表操作代碼只使用link_to()
函數,甚至不嘗試使用幫助程序。 - 表單操作代碼將我的自定義確認消息傳遞給自定義幫助器方法,但都不將模板傳遞給
link_to()
。爲什麼是這樣?我希望這是一個錯誤。
如果有人可以闡明爲什麼兩個產生不同,我真的很感激它。
謝謝。
我可以,我現在,使用自定義的生成。但是,由於我無法理解的原因,缺省主題中存在缺陷和差異。我在symfony trac上提交了一張票。這對我來說似乎是錯誤的。 – 2010-02-10 12:25:59
雖然我不認爲這是'正確的'答案,但它解決了我的問題,並且是我將會得到的最接近的答案。乾杯。 – 2010-02-11 12:01:05