2 gün boyunca cakephp pagations seçenekleri ile çalışıyorum. Birkaç alanı listelemek için INNER Birleştirme yapmam gerekiyor, ancak sonuçları filtrelemek için arama ile uğraşmak zorundayım. Bu benim $this->passedArgs
function crediti() {
if(isset($this->passedArgs['Search.cognome'])) {
debug($this->passedArgs);
$this->paginate['conditions'][]['Member.cognome LIKE'] = str_replace('*','%',$this->passedArgs['Search.cognome']);
}
if(isset($this->passedArgs['Search.nome'])) {
$this->paginate['conditions'][]['Member.nome LIKE'] = str_replace('*','%',$this->passedArgs['Search.nome']);
}
tarafından ve
$this->paginate = array(
'joins' => array(array('table'=> 'reservations',
'type' => 'INNER',
'alias' => 'Reservation',
'conditions' => array('Reservation.member_id = Member.id','Member.totcrediti > 0'))),
'limit' => 10);
$this->Member->recursive = -1;
$this->paginate['conditions'][]['Reservation.pagamento_verificato'] = 'SI';
$this->paginate['fields'] = array('DISTINCT Member.id','Member.nome','Member.cognome','Member.totcrediti');
$members = $this->paginate('Member');
$this->set(compact('members'));
İÇ iyi işler JOIN sonra arama seçenekleri ile başa hangi kod bölümünün, ama $ this-> paginations her $this->paginate['conditions'][] by $this->passedArgs
görmezden gelip ben fikir sahibi olamaz Nasıl çalışabilirim. Hatalı sorguda sorgu yok, sadece orijinal INNER JOIN
. Birisi bana yardımcı olabilir mi? Thank you very
Güncelleme: Bu konuda bir şans yok. Birçok saat boyunca bu kod parçası ile uğraşıyorum. Ben
if(isset($this->passedArgs['Search.cognome'])) {
$this->paginate['conditions'][]['Member.cognome LIKE'] = str_replace('*','%',$this->passedArgs['Search.cognome']);
}
$this->paginate['conditions'][]['Member.sospeso'] = 'SI';
$this->Member->recursive = 0;
$this->paginate['fields'] = array(
'Member.id','Member.nome','Member.cognome','Member.codice_fiscale','Member.sesso','Member.region_id',
'Member.district_id','Member.city_id','Member.date','Member.sospeso','Region.name','District.name','City.name');
$sospesi = $this->paginate('Member');
her şey iyi gider kullanıyorum ve birleştirmeler yazarsam debug'daki Seni dizi $this->passedArgs
Array
(
[Search.cognome] => aiello
)
Array $this->paginate['conditions'][]
(
[0] => Array
(
[Member.cognome LIKE] => aiello
)
[1] => Array
(
[Member.sospeso] => NO
)
görebileceğiniz gibi, birinci koşul ve $this->paginate['conditions'][]['Member.cognome LIKE']
gelen koşullarını almak Ama olursa paginate ile, $this->paginate['conditions'][]
tüm şeyleri göz ardı eder ve hata ayıklamadan bana verir, yalnızca $this->paginate['conditions'][]['Reservation.pagamento_verificato'] = 'SI';
Başka bir bilgi. $this->paginate['conditions'][]['Reservation.pagamento_verificato'] = 'SI';
ile ilgili tüm bilgileri $this->paginate JOIN
'dan önce koyarsam hiçbir şey $this->paginate['conditions'][]
içinde olmayacaktır. Ben yöntemini sayfalandırmak çağırdığınızda
$this->paginate['conditions']['Reservation.pagamento_verificato'] = 'SI';
: CakePHP'nin 2.3.4 http://stackoverflow.com/questions/13645296/cakephp-paginate-conditions-on-join-table/ 16789816 # 16789816 –