ایجاد سیستم فالوو و روابط بین جدول کاربران و فالوورها در یک نرم افزار شبکه اجتماعی با لاراول

ساخت وبلاگ

احتمالا قصد راه اندازی یک شبکه اجتماعی دارید که در بخش روابط بین جداول کاربران و جدول میانجی فالورها مشکل دارید بنابراین با من همراه باشید تا با نحوه ایجاد جداول مربوط به بخش فالوو کاربران آشنا بشیم.

اگر خیلی خلاصه اش کنیم ، شما ابتدا یک جدول بنام کاربران ایجاد خواهید کرد که اطلاعات مایگریشن اون با فرض فیلدهایی که من در نظر گرفتم به شرح زیر خواهد بود :

 

Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email');
$table->string('first_name');
$table->string('last_name');
$table->string('password');
$table->string('gender');
$table->rememberToken();
$table->timestamps();
});

 

شما بایستی یک جدول دیگر با اسم Followers ایجاد کنید که مایگریشن اون به شرح زیر باشه :

 

Schema::create('followers', function (Blueprint $table) {

 

$table->increments('id');
$table->integer('follower_id')->unsigned();
$table->integer('following_id')->unsigned();
$table->timestamps();
});

 

جدول followers متعلق به جدول users هست و دو تا کلید خارجی داریم داخلش داریم که هر دو به جدول users ارجاع داده شدن ، بنابراین کافیست شما وارد مدل User خودتون بشید که لاراول براتون در مسیر AppUser ساخته و دو تا فانکشن زیر رو به آن اضافه کنید :

 

// users that are followed by this user
public function following() {
return $this->belongsToMany(User::class, 'followers', 'follower_id', 'following_id');
}

 

// users that follow this user
public function followers() {
return $this->belongsToMany(User::class, 'followers', 'following_id', 'follower_id');
}

 

کار تمامه و شما خیلی راحت می تونید در هر جایی از برنامه خودتون برای فالو کردن یک یوزر از دستور زیر استفاده کنید :

$userA_object->following()->attach($userB_id);

که کاربر A قصد فالوو کاربر B رو داره و برای برداشتن فالوو هم از دستور زیر استفاده کنید :

$userA_object->following()->detach($userB_id);

برای دریافت لیست فالورهای یک کاربر هم از دستور زیر استفاده کنید :

$a_followers = $a->followers()->get();

برای دریافت لیست فالوو شدگان کاربر هم از دستور زیر استفاده کنید :

$a_followers = $a->following()->get();

 

امیدوارم براتون مفید بوده باشه

 

 

روش همروند و غیر همروند در ارسال درخواست به سرور و دریافت پاسخ از آن...
ما را در سایت روش همروند و غیر همروند در ارسال درخواست به سرور و دریافت پاسخ از آن دنبال می کنید

برچسب : نویسنده : aphpkar9 بازدید : 248 تاريخ : جمعه 31 خرداد 1398 ساعت: 5:36