2014-01-07 163 views
1

我是新來的symfony,並遵循這個驚人的教程來設置我的包和實體使用命令行使用教義通過控制檯。Symfony隱藏字段

http://symfony.com/blog/symfony2-getting-easier-interactive-generators

唯一的問題是,類我已經安裝了隱藏字段。例如創建日期和更新日期。這只是爲了我的記錄,所以我可以看到人們是否做了他們不應該做的事情。

唯一的問題是它們顯示在前端,我不知道如何隱藏它們,而無需重寫生成的代碼並逐個添加字段。

這裏是控制器

public function createAction(Request $request) 
{ 
    $entity = new Client(); 
    $form = $this->createCreateForm($entity); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($entity); 
     $em->flush(); 

     return $this->redirect($this->generateUrl('client_show', array('id' => $entity->getId()))); 
    } 

    return $this->render('AcmeClientMoodBundle:Client:new.html.twig', array(
     'entity' => $entity, 
     'form' => $form->createView(), 
    )); 
} 

/** 
* Creates a form to create a Client entity. 
* 
* @param Client $entity The entity 
* 
* @return \Symfony\Component\Form\Form The form 
*/ 
private function createCreateForm(Client $entity) 
{  
    $form = $this->createForm(new ClientType(), $entity, array(
     'action' => $this->generateUrl('client_create'), 
     'method' => 'POST', 
    )); 

    $form->add('submit', 'submit', array('label' => 'Create')); 

    return $form; 
} 

功能,這裏是實體/類

namespace Acme\ClientMoodBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints as Assert; 
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; 

/** 
* Client 
*/ 
class Client 
{ 
    /** 
    * @var integer 
    */ 
    private $id; 

    /** 
    * @var string 
    */ 
    private $name; 

    /** 
    * @var string 
    */ 
    private $logo; 

    /** 
    * @var integer 
    */ 
    private $moodId; 

    /** 
    * @var integer 
    */ 
    private $projectManagerId; 

    /** 
    * @var \DateTime 
    */ 
    private $created; 

    /** 
    * @var \DateTime 
    */ 
    private $updated; 

    /** 
    * @var integer 
    */ 
    private $active; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set name 
    * 
    * @param string $name 
    * @return Client 
    */ 
    public function setName($name) 
    { 
     $this->name = $name; 

     return $this; 
    } 

    /** 
    * Get name 
    * 
    * @return string 
    */ 
    public function getName() 
    { 
     return $this->name; 
    } 

    /** 
    * Set logo 
    * 
    * @param string $logo 
    * @return Client 
    */ 
    public function setLogo($logo) 
    { 
     $this->logo = $logo; 

     return $this; 
    } 

    /** 
    * Get logo 
    * 
    * @return string 
    */ 
    public function getLogo() 
    { 
     return $this->logo; 
    } 

    /** 
    * Set moodId 
    * 
    * @param integer $moodId 
    * @return Client 
    */ 
    public function setMoodId($moodId) 
    { 
     $this->moodId = $moodId; 

     return $this; 
    } 

    /** 
    * Get moodId 
    * 
    * @return integer 
    */ 
    public function getMoodId() 
    { 
     return $this->moodId; 
    } 

    /** 
    * Set projectManagerId 
    * 
    * @param integer $projectManagerId 
    * @return Client 
    */ 
    public function setProjectManagerId($projectManagerId) 
    { 
     $this->projectManagerId = $projectManagerId; 

     return $this; 
    } 

    /** 
    * Get projectManagerId 
    * 
    * @return integer 
    */ 
    public function getProjectManagerId() 
    { 
     return $this->projectManagerId; 
    } 

    /** 
    * Set created 
    * 
    * @param \DateTime $created 
    * @return Client 
    */ 
    public function setCreated($created) 
    { 
     $this->created = $created; 

     return $this; 
    } 

    /** 
    * Get created 
    * 
    * @return \DateTime 
    */ 
    public function getCreated() 
    { 
     return $this->created; 
    } 

    /** 
    * Set updated 
    * 
    * @param \DateTime $updated 
    * @return Client 
    */ 
    public function setUpdated($updated) 
    { 
     $this->updated = $updated; 

     return $this; 
    } 

    /** 
    * Get updated 
    * 
    * @return \DateTime 
    */ 
    public function getUpdated() 
    { 
     return $this->updated; 
    } 

    /** 
    * Set active 
    * 
    * @param integer $active 
    * @return Client 
    */ 
    public function setActive($active) 
    { 
     $this->active = $active; 

     return $this; 
    } 

是如何實現這一目標的最佳方式是什麼?

回答

2

你應該看看你的班級ClientType並刪除你不想要的字段。

現場創作的樣子:

$builder->add('created'); 

刪除此行。

+0

喔,那太容易了。我喜歡symfony!感謝您的快速響應。 – chris

+0

最後一件事情是如何將日期變量傳遞給數據庫。 EG:在下面的消息中,我需要傳遞一些像這樣的東西:$ date-> format('d-m-Y H:i:s'); '使用params [「Test」,「\/logo」)插入客戶端(名稱,徽標,mood_id,project_manager_id,創建,更新,活動)VALUES(?,?,?,?,?,?,?)'。 jpg「,1,1,null,null,true]: – chris

+0

在持久化實體之前,您必須使用類似'$ entity-> setCreated(new \ Datetime(」now「));' –