Я работаю над эластичным поиском с помощью laravel scout; мой поиск работает правильно для реляционной таблицы, но я получил ошибку ниже для запроса соединения.
Method Laravel\Scout\Builder::with does not exist.
Джоинги работают или не работают в поиске. Какое другое решение для этого?
В своей модели пост-модели я написал следующий метод. В toSearchableArray у меня есть данные поиска из таблиц сообщений и пользователей (имя пользователя).
public function toSearchableArray()
{
$array = [
'user_id' => $this->user_id,
'post' => $this->post,
];
$extra_data = [];
$extra_data['name'] = $this->user->name;
return array_merge($array, $extra_data);
}
/**
* Get the index name for the model.
*
* @return string
*/
public function searchableAs()
{
return 'posts_index';
}
public function user()
{
return $this->belongsTo('App\User');
}
В репозитории я написал public function elasticSearch($search), эту функцию для получения данных о пользователях и публикациях.
В репозитории я написал эту функцию, у меня ошибка метода with.
Я хочу показать данные из таблиц постов и пользователей; как я это показываю?
public function elasticSearch($search)
{
return $this->post->search($search)->with('user')->get();
//$ss = Post::search($search)->get();
}
Post и User являются моделями, защищенными $ Post; защищенный пользователь $; публичная функция __construct (Post $ post, User $ user) {$ this-> post = $ post; $ this-> user = $ user; }
Я понимаю, что вы инициализировали значение в конструкторе, как вы вызываете функцию и каково значение $ this
вы хотите сказать, что этот метод поиска $ this-> post-> search ($ search) -> with ('user') -> get (); этот метод поиска является методом эластичного поиска, который я написал в этом формате $ this-> post-> search ($ search) -> with ('user') -> get (); вместо Post :: search ($ search) -> with ('user') -> get ();
Помогите, пожалуйста .
Я могу помочь, только если смогу понять ошибку, дорогая.






Вы можете сказать мне, как вы вызываете эту функцию. а также скажите мне значение $ this