Ich möchte meine Daten aus der Datenbank suchen durch Eingabe suchen, alles sieht richtig aus, aber ich kann nicht finden, warum dieser Code nicht funktioniert.Wenn ich die Suchdaten im Eingabefeld eingeben, ist keine Sache done.please HilfeSuche funktioniert nicht in CakePHP-3
Mein Controller: AdUnitsController
class AdUnitsController extends AppController
{
public function index()
{
$query = $this->_getData();
$this->set('adUnits', $this->paginate($query));
$this->paginate = [
'contain' => ['Networks', 'Games', 'AdTypes']
];
$adUnits = $this->paginate($this->AdUnits);
$this->set(compact('adUnits'));
$this->set('_serialize', ['adUnits']);
}
public function _getData()
{
if (!empty($this->request->data['search'])) {
$search = $this->request->data['search'];
$query = $this->AdUnits->find('All')->where([
'OR' => [
['name LIKE' => '%' . $search . '%'],
],
]);
}
else{
$query = $this->AdUnits->find('All');
}
return $query;
}
MY VIEW index.ctp:
<label> Search</label>
<?php echo $this->Form->create('AdUnits',array('id' => 'site-search','url'=>array('action'=>'index')));?>
<div>
<?php echo $this->Form->input('search',array('class' => 'form-control', 'label' =>false, 'placeholder' => 'Type Network')); ?>
</div>
<div> <button type="submit"> Search</button>
<?php echo $this->Form->end();?>
Suche Es nicht work.please Hilfe
Sie paginieren zwei mal und ich weiß nicht warum. Setzen Sie das Paginierungsarray vor dem 'paginate()' - Aufruf und entfernen Sie dann den zweiten Paginierungsaufruf. – arilia
Fragen Sie sich, warum Sie zweimal paginieren und den doppelten Wert von $ adUnits setzen. Der zweite überschreibt den ersten und ist nutzlos. – arilia
was meinst du mit nicht funktionieren? Haben Sie einen Fehler? – arilia