預定義文中用到的變數:
$em = $this->getdoctrine()->getentitymanager();
$repository = $em->getrepository(『acmestorebundle:product』);
1.常用的查詢
$repository->find($id); //獲取的是一條資料
$repository->findall(); //獲取的是陣列
$repository->findonebyname(『foo』);//獲取的是一條資料
$repository->findby(array(『name』 => 『foo』,『price』 => 19.99),array(『price』 => 『asc』));//獲取的是乙個陣列
2、dql
例題1.
$query = $em->createquery(
『select p from acmestorebundle:product p where p.price > :price order by p.price asc』
)->setparameter(『price』, 』19.99′);
$products = $query->getresult();
注:(1) 獲得乙個結果可以用:$product = $query->getsingleresult();
(2) setparameter(『price』, 』19.99′);運用這個外部方法來設定查詢語句中的 「佔位符」price 的值,而不是直接將數值寫入查詢語句中,有利於防止sql注入攻擊,你也可以設定多個引數:
->setparameters(array(
『price』 => 』19.99′,
『name』 => 『foo』,
))例題2:
例題4、
if ($status == inventoryorder::status_submitted) else if ($status == inventoryorder::status_unsubmitted) else if (empty($status)) else
if ($starttimestamp > $endtimestamp)
$sql .= $index;
$sql .= ' between :startdate and :enddate ';
$start = date('y-m-d 00:00:00', $starttimestamp);
$end = date('y-m-d 23:59:59', $endtimestamp);
$params['enddate'] = $end;
$params['startdate'] = $start;
if (!empty($status))
$sql .=' order by i.createtime desc';
$query = $this->entitymanager->createquery($sql);
$orderlist = $query->setparameters($params)->getresult();
3.query builder查詢
例題1、
$query = $repository->createquerybuilder(『p』) ->where(『p.price > :price』) ->setparameter(『price』, 』19.99′) ->orderby(『p.price』, 『asc』) ->getquery();
$products = $query->getresult();
Symfony2函式使用
1.呼叫其他物件的方法。例 grobal func this container get global func global func 函式所在的檔名 lot data global func getdatafromfile parm1 getdatafromfile函式名 2.資料庫的預備查詢 ...
symfony2 學習筆記
1 建立entities 儲存的 string 型別 使用 datetime控制項編輯 transformer string to date builder add starttime datetime builder get starttime addmodeltransformer new ca...
安裝symfony2 如此簡單!
2 安裝composer時選擇php.exe的路徑,我用的是xampp,所以路徑為c xampp php。安裝好cmd下執行composer 看看是否成功了 3 在頁面上有composer安裝symfony的命令列,拷貝下來 我安裝的是2.3 命令為 composer create project ...