У меня есть три таблицы сообщений: пользователь и страна.
Сообщение сохраняется пользователем из страны.
Теперь я хочу искать все сообщения всех пользователей из страны.
, поэтому пользователь будет фильтровать по стране, и я получу код страны из окна поиска на контроллер $request->input($country);
Вот мои модельные отношения:
ПОЧТОВАЯ МОДЕЛЬ:
class Post extends Model
{
protected $table = 'posts';
protected $dates = ['status_change'];
public function photos()
{
return $this->hasMany(Photo::class,'post');
}
public function make_rel()
{
return $this->belongsTo(Make::class, 'make_id' ,'id','make_logo');
}
public function user_rel()
{
return $this->belongsTo(User::class, 'created_by' ,'id');
}
}
СТРАНОВАЯ МОДЕЛЬ:
class Country extends Model
{
public function users(){
return $this->hasMany('App\User');
}
}
МОДЕЛЬ ПОЛЬЗОВАТЕЛЯ:
class User extends Authenticatable
{
public function country_rel()
{
return $this->belongsTo(Country::class, 'country' ,'country_code');
}
}
ФУНКЦИЯ ПОИСКА
public function search(Request $request)
{
$this->validate($request, [
'country' => 'required',
]);
$country = Country::where('country_name',$request->input('country'))->get();
$data = Post::where('created_by',$country->user_rel->name)
->get();
dd($data);
}
Это не работает. Кто-нибудь может посоветовать, что я делаю не так?