2012-02-08 168 views
3

簡單的搜索,我試圖建立在CakePHP的2.0一個簡單的電話簿存儲&檢索信息。在CakePHP的2.0

目前我有一個表命名聯繫人,並在它下面的字段。 - 名稱
- 電話沒有。 - 電子郵件地址 - 地址

我想集成一個簡單的搜索功能,列出與查詢匹配的聯繫人。因爲它的一個非常基本的簡單的應用程序,我想保持這個儘可能簡單。

有什麼建議?

+0

是否有具體的你堅持的東西?它聽起來像一個基本的'find()'查詢會做的伎倆。 – JJJ 2012-02-08 11:53:21

回答

7
<?php 
$keyword=$this->params->query['keyword']; //get keyword from querystring// 
//used simpme or condition with singe value checking 
//replace ModelName with actual name of your Appmodel 
$cond=array('OR'=>array("ModelName.phone LIKE '%$keyword%'","ModelName.name LIKE '%$keyword%'", "ModelName.email LIKE '%$keyword%'") ); 

$list = $this->ModelName->find('all',array('conditions')=>$cond); 


?> 
+10

這使得SQL注入攻擊。在將其用作查詢之前,先對輸入進行消毒。更好地使用:'$ keyword ='%'。$ this-> params-> query ['keyword']。'%';'''array('ModelName.phone LIKE'=> $ keyword);'。 – YMMD 2012-09-15 17:56:57

2

嘗試使用find()方法用於搜索查詢..瞭解更多詳情..請瀏覽以下

Retrieving data

4

我建議使用像 https://github.com/dereuromark/search 插件的鏈接保持乾燥和簡單。

它是一個3線程,您需要添加到動作 ,模型中只有幾行配置以及視圖中的小表單。 就是這樣。

3

對不起重振回答的問題,我解決了這個位以同樣的方式(在某種程度上),這可與CakePHP的2.3.5

$options = array(
'conditions' => array(
    'OR' => array(
     'Listing.description LIKE' => '%'. $keyword . '%', 
     'Listing.title LIKE' => '%'. $keyword . '%' 
     ) 
    ) 
); 
$list = $this->Listing->find('all', $options);