2013-10-24 58 views

回答

1

使用代碼片段到視圖要呈現不同的領域

(其中ROLE_SUPER_ADMIN僅是一個例子),但是

{% if is_granted('ROLE_SUPER_ADMIN') %} 
{% endif %} 

更好的解決方案(即:securiy孔),將到構建直接形式進入邏輯,只有通過領域你有興趣

public function fooController() { 
    //some logic here 
    $sc= $this->get('security.context'); 
    $form = new FooForm($sc); 
} 

class FooForm extends Abstract Type 
{ 
    private $sc; 

    public function __construct($sc) { 
    $this->sc = $sc; 
    } 

    public function BuildForm(FormBuilderInterface $builder, $array options) { 
    if($sc->isGRanted('ROLE_SUPER_ADMIN') { 
     //add fields here 
    } 
    } 
} 
+0

它給我的安全問題,建造了現場,但沒有顯示仍然可以填寫/綁定是不是? – goto

+0

@ goto:是的,如果你需要這種形式的「安全」目的或類似的東西,當然你必須直接建立它的業務邏輯,並通過正確的形式來查看 – DonCallisto

+0

我們正在談論角色,安全問題,即使它不是用於安全的表單 – goto

0

我寧願改編formBuilder在你的FormType

你可以通過__construct()方法

相關問題