آموزش php (وبلاگ یک پی اچ پی کار)



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

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

 

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 خودتون بشید که لاراول براتون در مسیر App\User ساخته و دو تا فانکشن زیر رو به آن اضافه کنید :

 

// 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();

 

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

 

 


 

برای رمزنگاری از تابع زیر استفاده کنید :

 

function EncryptString($string)

{

    try {

        $ciphering = "AES-128-CTR";

        $iv_length = openssl_cipher_iv_length($ciphering);

        $options = 0;

        $iv = "1234567890123456";

        $key = "1234567890123456";

        $result = openssl_encrypt($string,$ciphering,$key,$options,$iv);

        return $result;

 

    } catch (\Throwable $th) {

        // return $th->getMessage();

        return false;

    }

 

}

 

 

 

 

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

 

 

function DecryptString($string)

{

    try {

        $ciphering = "AES-128-CTR";

        $iv_length = openssl_cipher_iv_length($ciphering);

        $options = 0;

        $iv = "1234567890123456";

        $key = "1234567890123456";

        $result = openssl_decrypt($string,$ciphering,$key,$options,$iv);

        return $result;

 

    } catch (\Throwable $th) {

        return false;

    }

 

}

 

 


 


آخرین ارسال ها

آخرین جستجو ها


ناردون کلیپ بانک لینک های دانلود فیلم ، دانلود سریال و دانلود آهنگ میباشد. روش های زندگی بهتر و کسب درآمد شورای دانش آموزی دبیرستان جوادالائمه Noahfyaq400 Home گروه ریاضی استان همدان دکوراسیون داخلی و معماری مک پلاس baranenpayizi آموزش نکات کلیدی بورس ، تکنیک ها و ترفندهای بورس