У меня есть модель сообщений и модель тегов. Мне нужно создать поисковый запрос, чтобы пользователь вводил теги, а затем функция берет этот тег и отображает в нем все связанные сообщения, поэтому отношение «многие ко многим» относится ко многим тегам.и теги принадлежат многим постам, поэтому я объявил корабль отношений, но я не могу найти способ сделать так, чтобы предложение where с кораблем отношений было очевидным. Я не знаю, что добавить в название модели и в функцию отношений
Это моя функция поиска
public function search()
{
$q = Input::get ( 'q' );
$posts = post::where('tag_name','LIKE','%'.$q.'%')->tags()->get;
dd($posts);
if(count($posts) > 0)
return view('guest.blog.search_result' , ['title' => 'Resaults'])->withDetails($posts)->withQuery ( $q );
else return view ('guest.blog.no_resault' , ['title' => 'Resaults'])->withMessage('No Details found');
}
модель моих сообщений
public function tags()
{
return $this->belongsToMany('\Conner\Tagging\Model\Tagged');
}
модель моих тегов (из пакета rtconner)
это отношение изисходный пакет
public function tag()
{
$model = $this->taggingUtility->tagModelString();
return $this->belongsTo($model, 'tag_slug', 'slug');
}
и я объявил это отношение
public function posts()
{
return $this->belongsToMany('App\Post');
}
мой вопрос, как правильно выполнить поисковый запрос без ошибок
Примечание: естьполе поиска, где пользователь будет писать только теги, поэтому я должен взять этот ввод, который является тегом, затем поискать соответствующий ему пост, а затем я покажу его пользователю
РЕДАКТИРОВАТЬ
моя функция поиска
public function search()
{
$q = Input::get ( 'q' );
// я использовал get, потому что я хочу, чтобы все сообщения, принадлежащие одному тегу, $ posts =Tagged :: где ( 'tag_name', 'LIKE', '%' $ д '%'..) -> с ( 'сообщений') -> Get ();дд ($ сообщений);if (count ($ posts)> 0) возвращаемое представление ('guest.blog.search_result', ['title' => 'Results']) -> withDetails ($ posts) -> withQuery ($ q);иначе возвращаемое представление ('guest.blog.no_result', ['title' => 'Results']) -> withMessage ('Детали не найдены');}
мои модели с тегами и сообщениями одинаковы
Я добавил таблицу в базу данных, имя которой - post_tagged, и в ней у меня есть два столбца post_id
и tagged_id
.
Таким образом, через эту таблицу будет происходить перенос отношений, если вы ее не создавали, она выдаст ошибку состояния SQL