在你的/ lib目錄/表單創建另一種形式該文件夾可以擴展您的常規表單,然後覆蓋相應的字段。以下內容將從窗體中刪除該字段,以便根本不顯示該字段。
<?php
class FrontendSomeModelForm extends SomeModelForm {
public function configure()
{
unset($this["some_field"]);
}
}
或者,如果你想呈現的價值,但不允許它進行編輯,你可以做到以下幾點:
<?php
class FrontendSomeModelForm extends SomeModelForm {
public function configure()
{
$this->setWidget("some_field", new sfWidgetFormPlain());
}
}
,然後創建一個sfWidgetFormPlain
小部件,只是輸出值和把它放在symfony可以找到的地方(lib/form/widget或其他東西)。
<?php
class sfWidgetFormPlain extends sfWidgetForm
{
/**
* Constructor.
*
* @param array $options An array of options
* @param array $attributes An array of default HTML attributes
*
* @see sfWidgetForm
*/
protected function configure($options = array(), $attributes = array())
{
$this->addOption('value');
}
/**
* @param string $name The element name
* @param string $value The value displayed in this widget
* @param array $attributes An array of HTML attributes to be merged with the default HTML attributes
* @param array $errors An array of errors for the field
*
* @return string An HTML tag string
*
* @see sfWidgetForm
*/
public function render($name, $value = null, $attributes = array(), $errors = array())
{
//optional - for easy css styling
$attributes['class'] = 'plain';
return $this->renderContentTag('div', $value, $attributes);
}
}
然後,您使用此表單,而不是您正常的那個,而您不希望能夠編輯該表單。檢查symfony文檔以瞭解如何執行此操作,具體取決於您是在模塊中顯示它還是通過管理生成器。
好的,只是爲了清除:請使用使用CRUD或Doctrine的管理生成器? – Darmen 2011-04-05 03:51:03
主義管理生成器我認爲。即php的symfony教條:generate-module appname modulename ModelName – captainclam 2011-04-05 08:36:22
'doctrine:generate-module'生成CRUD,而不是管理模塊。要生成管理模塊,你必須使用'doctrine:generate-admin'。我知道如何用管理模塊來幫助你,而不是CRUD,對不起。 – Darmen 2011-04-05 09:22:06