-
1. $dql = "select b, u from ScourgenWebBundle:Book b join b.users u"; 2. $dql = "selectb.title, u.email from ..."; 1.會將book 和 user所有字段取出來,并且結(jié)果是對象,可以使用getTitle之類的方法 2.僅將title和email字段取出來,結(jié)果是數(shù)組。無法使用getTitle之類的方法。查看全部
-
//手動開啟事務(wù)【方法一】 $em = $this->getDoctrine()->getManager(); $em->getConnection()->beginTransaction(); try{ $user1 = $em->getRepository('DemoCeBundle:user')->findOneBy(array('id'=>1)); $user1->setEmail('niusdadcha.com'); $em->persist($user1); $em->getConnection()->commit(); }catch(Exception $e){ $em->getConnection()->rollBack(); } //手動開啟事務(wù)【方法二】 $em->transactional(function($em){ $user1 = $em->getRepository('DemoCeBundle:user')->findOneBy(array('id'=>1)); $user1->setEmail('niusdadcha.com'); $em->persist($user1); })查看全部
-
直接調(diào)用s q l查看全部
-
//生命周期操作[方法一] //1 在類的外面 @ORM\HasLifecycleCallbacks() //2 在setCreateAt方法外 @ORM\PrePersist() //3 $this->createAt = new \DateTime(); // 注意這種方式的不足之處 ,因為我把他處理的不能傳一個特定的時間值, //其次@ORM\PrePersist()放在外面,當(dāng)別的地方也有這樣的操作的話,就不太知道哪一個先執(zhí)行 //[方法二]當(dāng)有頻發(fā)操作的時候我們可以這樣 ///** //* @ORM\PrePersist() // */ // function PrePersist(){ // if($this->getCreateAt() == null){ // $this->setCreateAt(new \DateTime('now')); // } // $this->setUpdateAt(new \DateTime('now')); // }查看全部
-
find方法使用 如果有很多地方使用到$this->getDoctrine()->getManager()->getRepository('ScourgenWebBundle:User');的花,建議建立一個protected function給其它方法調(diào)用。 定義返回類型:@return \Scourgen\WebBundle\Entity\UserRepository查看全部
-
讀出關(guān)聯(lián)表數(shù)據(jù)查看全部
-
往數(shù)據(jù)庫添加數(shù)據(jù)查看全部
-
user表和book表關(guān)聯(lián) 一對多 存數(shù)據(jù)查看全部
-
doctrine數(shù)據(jù)庫操作(select,update,insert,delete)查看全部
-
Enity User.php,使用annation來進(jìn)行對字段和類進(jìn)行聲明查看全部
-
// 1 在app\config\parameters.yml.dist 修改數(shù)據(jù)庫相關(guān)信息 // 2 php app/console doctrine:database:create 創(chuàng)建數(shù)據(jù)庫 // 3 php app/console generate:doctrine:entities DemoCeBundle 執(zhí)行命令 自動創(chuàng)建user.php中相關(guān)字段的 set ,get方法 // 4 php app/console doctrine:schema:update --force 創(chuàng)建/更新數(shù)據(jù)表結(jié)構(gòu) // 5 php app/console doctrine:schema:update --dump-sql 打印更新的sql語句 // 注意:如果你的字段有name變更為email 則 setName和getName不會發(fā)生變更,需要你自己手動進(jìn)行刪除查看全部
-
Enity User.php,使用annation來進(jìn)行對字段和類進(jìn)行聲明查看全部
-
使用DQL 的兩種方法: $query = $em->createQuery( 'select u from DataBundle:User p where u.name = :name' )->setParamter('name','scourgen'); $query2 = $em->getRepository('User')->creatQueryBuilder('U') ->where('u.name = :name') ->setParamter('name','scourgen') ->getQuery();查看全部
-
Proxy Class 代理類: 在沒有用到關(guān)系中的字段時,不會載入實體。 $user = $em->getRepository('User')->findOneBy(array("id"=>1)); ->此時$user 中真正有的只是 user 表的字段。 當(dāng)代碼執(zhí)行到 $user->getAddressBooks() 時,Doctrine 才會動態(tài)地生成一條外鍵查詢 AddressBooks 其實就是一個 Proxy Class,在沒有被調(diào)用之前,其實是一個虛擬的,代理的類查看全部
-
Doctrine 的 entity 實體對象查看全部
舉報
0/150
提交
取消