У меня есть следующая структура.Пока пользователь регистрируется, он выбирает страну.он создает пост.Я хочу найти все сообщения определенной страны, в которой есть ключевое слово для поиска.Ключевым словом поиска может быть название, модель, цена чего угодно.Он отлично работает.
Однако я также хочу иметь возможность искать имена производителей.Но в отличие от других полей, имя make не сохраняется непосредственно в моей таблице, оно сохраняет идентификатор для выбора имени make из другой таблицы.
Как мне выполнить поиск по марке?
Модель - отношение POsts.Модель сообщения:
class Post extends Model
{
protected $table = 'posts';
protected $dates = ['status_change'];
public function make_rel()
{
return $this->belongsTo(Make::class, 'make_id' ,'id','make_logo');
}
}
Так что в основном я создаю сообщение.Во время создания я могу выбрать марку.Почтовый стол сохраняет мак ID.Марка сохраняется в другой таблице как Id, имя_клима.
Таблица макетов:
Стол сообщений:
Теперь я хочу сделать запрос к таблице сообщений на основе make:
$posts = Country::where('country_name', $request->input('country'))->first()->posts()->orderBy('status_change','DESC')
->where('status','Published')
->where(function($query) use ($search){
$query->where('title','LIKE','%'.$search.'%');
$query->orWhere('model','LIKE','%'.$search.'%');
$query->orWhere('notes','LIKE','%'.$search.'%');
$query->orWhere('description','LIKE','%'.$search.'%');
})
->paginate(25);
}