2013-07-28 58 views
0

我使用CakePHP2.4和搜索插件https://github.com/CakeDC/search如何使用cakedc/search插件在1個搜索欄中搜索3個不同的表格?

我有以下

Employee hasOne EmployeeProfile 
Employee hasMany Qualification 

所以我有一個搜索欄。

搜索欄中將搜索使用LIKE通過以下字段

Employee.name 
EmployeeProfile.email 
Qualification.title 

我怎麼配置這個搜索模型Employee->filterArgs

這是原來的問題here

+0

我會說:定製bindModel(如hasOne)的關係的hasMany(資格)和''field'=> array(all,my,fields)' - 或分頁hasMany記錄。 – mark

回答

0

文檔包括一個例子的橫張貼。

'username' => array('type' => 'like', 'field' => array('User.username', 'UserInfo.first_name')), 

您只需確保您調用的模型在find()調用中可用。在這個示例中,find將同時在users表用戶名和user_infos的first_name字段上執行類似操作。

0

我想對此進行擴展,因爲我一直試圖在hasMany關係上搜索幾個小時並找不到任何東西。 Mark提到「customModel(hasOne)for has many relationship(Qualification)」。下面是它是如何做:

$this->Employee->bindModel(array(
     'hasOne' => array(
      'Qualification' => array(
       'foreignKey' => false, 
       'conditions' => array('Employee.id = Qualification.employee_id') 
      ) 
     ) 
    ), false); 

只要你PAGINATE之前將它綁定在你的filterExpr添加Qualification.title在你的領域列表