CakePHP: плагин FriendsOfCake Search не фильтруется при отправке формы

1

Я пытаюсь настроить плагин SearchOfCake Search (https://github.com/FriendsOfCake/search) на CakePHP 3.1

Я выполнил инструкции в документах и установил форму в своем index.ctp и попытался фильтровать только по названию с помощью формы.

Но похоже, что после этого метод обработки данных формы не обрабатывается методом. В URL-адресе нет параметров поиска. Если я набираю URL вручную, например: /painting/index? title= blob, он корректно фильтрует. Поэтому сам плагин работает, я думаю, проблема связана с формой, потому что после нажатия кнопки "Отправить" это просто ничего не делает.

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

Если я использую форму для поиска "blob", например, страница загружается снова без фильтрации, а в DebugKit говорится: Post Data - заголовок blob..... Но: нет данных о querystring (если это что-то значит..)

Может ли кто-нибудь помочь мне разобраться, что я делаю неправильно? Я думаю, что что-то отсутствует в моем контроллере или в настройках формы в представлении, но я не могу понять, что. Спасибо за любую помощь!

Вот моя настройка:

class PaintingsTable extends Table
{
    public function searchConfiguration()
    {
    $search = new Manager($this);

    $search->like('title', [
                'field' => $this->aliasField('title')
        ]);

    return $search;

    }
class PaintingsController extends AppController
{
    public function initialize()
    {
       parent::initialize();

       if ($this->request->action === 'index') {
          $this->loadComponent('Search.Prg');
      }
    }

    public function index()
    {
    $query = $this->Paintings
        ->find('search', 
            $this->Paintings->filterParams($this->request->query))
        ->contain(['Artists']);

    $this->set('paintings', $this->paginate($query));
    $this->set('_serialize', ['paintings']);
    }
}
In Paintings - index.ctp:

<?= $this->Form->create(); ?>

<?= $this->Form->input('title') ?>

<?= $this->Form->button('Filter', ['type' => 'submit']) ?>
<?= $this->Html->link('Reset', ['action' => 'index']) ?>

<?= $this->Form->end()?>
Теги:
forms
cakephp

1 ответ

1

Хорошо, что я плохой! Теперь я знаю, в чем проблема: это был не код. Если кто-то сталкивается с подобной проблемой:

Ранее я установил плагин для поиска CakeDC и удалил его из требуемого списка в composer.json, но забыл обновить композитор, чтобы он действительно удалил его.

Теперь я заметил, что папка CakeDC все еще находится в папке "vendor". Поскольку оба они используют имя "Поиск" в качестве имени плагина, торт должен быть немного сбит с толку. Как только я обновил композитор, он удалил плагин CakeDC, и вышеописанная настройка работала отлично с плагином FriendsOfCake.

  • 0
    Я второй это. Я прошел точно такой же сценарий, и удаление плагина CakeDC Search сразу исправило проблемы с PRG.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню