Symfony (Hareket) Yönetici Jeneratör Davranış - Neden bu böyle çalışır?

1 Cevap php

Ben yönetici jeneratör (uskur sürüm) ile bazı 'sorunlar' sahip oldum. Liste görünümü ve Form görünümü arasında HTML nesil davranışı çok farklı, ve ben liste görünümüne kıyasla Form görünümü daha iyi çalışıyor (ve beklendiği gibi) gibi, neden bilmek istiyorum.

Ben, 'düzenle' eylemi için aşağıdaki YAML var

edit:
  actions:
    custom: { confirm: 'Run this custom action?' }
    _list:  ~
    _save:  ~

Bu, belirtilen özel eylem için aşağıdaki HTML / PHP üretir

// 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 ...

Şimdi, liste görünümü için YAML benim özel bir eylem eklerseniz,

list:
  object_actions:
    custom:  { confirm: 'Run this custom action?' }
    _edit:   ~
    _delete: ~

Ben, oluşturulan aşağıdaki HTML almak

// Snip ...
<li class="sf_admin_action_custom">
  <?php echo link_to(__('Custom', array(), 'messages'), 'users/ListCustom?id='.$user->getId(), array()) ?>
</li>
// Snip ...

Ben çok garip buluyorum burada bazı farklılıklar var,

  1. Form eylemleri kod yardımcısı bir yöntem olup olmadığını görmek için kontrol eder ve kullanır eğer öyleyse, bir standart link_to() fonksiyon değilse geri düşen. Ancak, liste eylemler kod sadece bile yardımcıyı kullanın çalışmıyorum, link_to() işlevini kullanır.
  2. Form eylemler kodu özel yardımcı yöntem benim özel onaylamak mesaj geçer, ama ne şablonları link_to() onu geçmek. Neden bu? Ben bu bir hata olduğunu umuyorum.

Birisi iki farklı oluşturmak neden olarak bazı ışık tutacak olsaydı, ben gerçekten takdir ediyorum.

Teşekkür ederim.

1 Cevap

Admin jeneratör yukardaki HTML / PHP üretir şablonları kullanır. Varsayılan tema yer almaktadır:

sfConfig::get('sf_symfony_lib_dir')/plugins/sfPropelPlugin/data/generatveya/sfPropelModule/admin/. (Versiyon 1.2)

veya

$sf_symfony_data_dir/generatveya/sfPropelAdmin/default/ (version 1.0)

The HTML/PHP code differs because the templates used to generate these files are different, but you can modify them to your likings by creating your own theme and specify that in the generatveya.yml. E.g.:

generatveya:
  class: sfPropelGeneratveya
  param:
    model_class:           BlogArticle
    theme:                 customTheme

Fveya mveyae infveyamation about how to do that, read http://www.symfony-project.veyag/book/1_2/14-Generatveyas