Функция поиска Cakephp не показывает нужные элементы - PullRequest
1 голос
/ 20 марта 2019

Я новичок в CakePHP, но я начинаю понимать это. У меня были некоторые проблемы с добавлением функции поиска в моем проекте. Я пытался добавить с помощью инструкций различных учебных пособий по YouTube и пытался изменить их для работы в моем проекте, но, похоже, ничего не работает. Я уже ценю помощь!

Так вот мой код контроллера:

class ProductsController extends AppController {

public function index() {
   /* $keyword = $this->request->query('keyword');
        if(!empty($keyword)){
        $this-set('products', $this->Product->find()); 
        }     */
    $keyword = $this->request->data('keyword');
    if($keyword != null) 
    {
        $this->set('products', $this->Product->find('all', array('conditions' => '%'.$keyword.'%')));
    }
    else {
        $this->set('products', $this->Product->find('all'));
    }   


}

А вот мой индексный файл (главная страница):

    <div id="listaus">
    <?= $this->Html->link('+ Listaa Uusi Auto', ['action' => 'add']) ?>
    
    <?= $this->Form->create("", array('type' => 'get')); ?>   
        <?= $this->Form->control('keyword'); ?>
    <?= $this->Form->end(__('Search')); ?>
</div>

<div class="row">
	<?php foreach ($products as $product):?>
	<div class="col-sm-6 col-md-4">
		<div class="">
			<?php echo $this->Html->link($this->Html->image($product['Product']['kuva']),
					array('action'=>'view',$product['Product']['id']),
					array('escape'=>false,'class'=>'thumbnail'));?>
			<div class="caption">
				<h4>
					<?php echo $product['Product']['name'];?>
				</h4>
				<h5>
					Price:
					<?php echo $product['Product']['hinta'];?>
                     &euro;
				</h5>
			</div>
		</div>
	</div>
	<?php endforeach;?>
</div>

Надеюсь, у кого-то есть решение моей проблемы, спасибо! :)

1 Ответ

0 голосов
/ 20 марта 2019

Похоже, вы не добавили предложение LIKE для соответствия условию поиска.

Попробуйте изменить

$this->set('products', $this->Product->find('all', array('conditions' => '%'.$keyword.'%')));

на

 $this->set('products', 
      $this->Product->find('all', 
        array(
         'conditions' => 
            array(
                   'Product.name LIKE ' => '%'.$keyword.'%'
            )
        )
      )
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...