Reputation: 25
I have 3 tables:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Schema::create('cities', function (Blueprint $table) {
$table->integer('id')->primary();
$table->string('name',100);
$table->string('state',50)->nullable();
$table->string('country',10);
$table->float('lot');
$table->float('lat');
});
Schema::create('followed_cities', function (Blueprint $table) {
$table->id();
$table->integer('user_id');
$table->integer('city_id');
});
And i made that relation in User class:
public function cities()
{
return $this->hasManyThrough(City::class,FollowedCity::class);
}
I tried putting this code into Controller and it doesn't work
$id=Auth::user()->id;
$followedCities = User::with('cities')->findOrFail($id);
I'm trying to get details for every city that this user is following. Can someone help me?
Upvotes: 0
Views: 46
Reputation: 300
you need to use Many to Many relation
in User.php
public function cities()
{
return $this->belongsToMany(City::class , 'followed_cities');
}
Upvotes: 1