0
我正在使用可包含行爲來查看多個表。使用CakePHP分頁和可包含的行爲創建複雜條件
$this->paginate = array(
'contain' => array(
'Co' => array('fields' => array('ref')),
'CoItemType' => array('fields' => array('name')),
'Casing' => array(
'fields' => array('id','barcode','CONCAT(plant_dot,size_dot,product_line_dot,production_week) as dot'),
'Customer' => array('fields' => array('company_name')),
)
)
);
這個按預期工作。不過,我正在將這與jQuery數據表集成在一起,並且dataTables通過的方式並不指定字段。所以我想這樣做的條件之外包含這樣的...
'conditions' = array(
'OR' => array(
array("Table.field_name LIKE " => '%'.$parameter.'%'),
array("Table.field_name LIKE " => '%'.$parameter.'%'),
array("Table.field_name LIKE " => '%'.$parameter.'%')
)
)
當然,由於中可容納的行爲要你包括包含數組中的表項下的條件下,這是不可能的。這是令人沮喪的,有沒有人有解決方案或繞過這個問題的解決方法?
我正在使用CakePHP 2.x
提示:在這裏爲你的CONCAT使用虛擬字段。這樣你可以得到更清晰的結果數組。 – mark
這是一個很好的提示,但沒有解決可容忍行爲的侷限性。 CakePHP simple不能做到這一點,因爲它將可容納分割爲多個查詢。我最好自己寫SQL。 – systematical
然後使用可鏈接或其他一些行爲或自定義綁定您的連接。這樣你仍然可以在這裏使用包裝器方法。 – mark