Как исправить ошибку «нет такого индекса [index: users]» при попытке доступа к опции добавления пользователя в Cakephp 3 и ElasticSearch? - PullRequest
0 голосов
/ 29 июня 2019

Я использую библиотеку упругого поиска, предоставляемую cakephp, выполнил Нажмите здесь это руководство из CakePhp, но при попытке получить доступ к методу добавления UsersController я получаю "нет такого индекса [index: users] " эта ошибка.

Такое ощущение, что пользовательский индекс не является созданным CakePHP, как, например, когда я создал индекс вручную для другой модели Статьи, эта ошибка исчезла, но я получил другую ошибку "тип [[article]] отсутствует [ index: _all] "

В application.php $this->addPlugin('Cake/ElasticSearch', ['bootstrap' => true]);

В app.php

   'elastic' => [
        'className' => 'Cake\ElasticSearch\Datasource\Connection',
        'driver' => 'Cake\ElasticSearch\Datasource\Connection',
    'host' => '127.0.0.1',
    'port' => 9200,
    ]

Создан тип модели UsersType.php

   namespace App\Model\Type;
   use Cake\ElasticSearch\Type;
   class UsersType extends Type{}

In UsersController.php

 public function beforeFilter(Event $event){
  parent::beforeFilter($event);
 // Load the Type using the 'Elastic' provider.
 $this->loadModel('Users', 'Elastic');
 }

метод add () в UsersController.php

    public function add()
    {
        $user = $this->Users->newEntity();
        if ($this->request->is('post')) {
            $user = $this->Users->patchEntity($user,   $this->request->getData());
            if ($this->Users->save($user)) {
                $this->Flash->success(__('The user has been saved.'));

                return $this->redirect(['action' => 'index']);
            }
            $this->Flash->error(__('The user could not be saved. Please, try again.'));
        }
        $this->set(compact('user'));
    }
...