Я хочу обновить запись elasticsearch. Я передаю всю запись в $ data в elasticsearch для обновления.Обновление записей в elasticsearch-laravel;
Обновить код:
public function updateEs($data)
{
$params = array();
$params['index'] = \App::environment();
$params['type'] = $data['context'];
$model = new \Modules\Catalog\Repositories\ProductRepo;
$form = $model->loadProduct($data['id']);// whole data come from database
$data=(object)$form; //array to object
$data['body'] = $data;
$data['index'] = 'my_index';
$data['type'] = 'product';
$data['id' ]= $data['id'];
$response = \Es::update($data);
}
Но я получаю ERROR:
FatalErrorException в ElasticSearchHelper.php линии 121:
Невозможно использовать объект типа StdClass как массив
Спасибо, сэр, я хочу знать одну вещь, могу ли я передать всю запись при обновлении записи elasticsearch? –
В приведенном выше примере $ form - массив, который я преобразовываю в объект в $ data = (object) $ form; нужно ли мне ? –
Это зависит от того, будет ли ES :: update() ожидать массив или объект (я не знаю, какая функция вызвала ошибку) –