استرداد أدوار المستخدمين من DATABASE (مفتاح خارجي)

0

هل يمكن لأي شخص أن يخبرني كيف يمكنني استعادة أدوار المستخدمين من قاعدة البيانات الخاصة بي؟ مع العلم أن لدي 3 جداول (المستخدمون والأدوار و User_role) عمليات الترحيل:

مستخدمو الجدول:

 public function up()
      {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();

        });
    }

أدوار الجدول:

public function up()
       {
        Schema::create('roles', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('description');
            $table->timestamps();
        });
       }

جدول المستخدم:

public function up()
         {
        Schema::create('user_role', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id');
            $table->integer('role_id');
            $table->timestamps();
        });
       }

الوظيفة في وحدة التحكم الخاصة بي التي ترجع قائمة المستخدمين هي membrevis ():

 public function membrevis()
     {
      $filter = isset($_GET['filter']) ? $_GET['filter'] : null;
        $query = DB::table('users')
        ->join('user_role', 'users.id', '=', 'user_role.user_id')
        ->join('roles', 'user_role.role_id', '=', 'roles.id')
        ->where('users.valid','=',1)
        ->select('users.*','roles.description');

    if ($filter != null) {
        $query->where('users.name','like','%'.$filter.'%')
            ->orWhere('roles.description','like','%'.$filter.'%');
         }

       $itemsPerPage = 8 ;
       $currentPage  = isset( $_GET['page'] ) && is_numeric( $_GET['page'] ) ? $_GET['page'] : 1;
         $urlPattern   = '/membre2?page=(:num)';
         $totalItems   = $query->count();
      $donner   = $query->offset( ( $currentPage - 1 ) * $itemsPerPage )->limit( $itemsPerPage )->get();
       $paginator = new  Paginator( $totalItems, $itemsPerPage, $currentPage, $urlPattern );

      return view('membre2',['users'=> $donner,'paginator'=> $paginator]);
     }

ما الذي يمكنني تعديله هنا لاستعادة المستخدمين وأدوارهم؟ مشكلة المفاتيح الخارجية

1 إجابة

3
افضل جواب

أوصي باستخدام نماذج Laravel والعلاقات.

هنا لديك علاقة بين المستخدمين والأدوار. يتم تعريف هذه العلاقة في ما يسمى بالجدول المتوسط ، في هذه الحالة جدول user_roles .

هناك نوع من علاقة كثير إلى كثير هنا بين المستخدمين والأدوار ، حيث يمكن لمستخدم واحد أن يكون له العديد من الأدوار ويمكن تعيين نوع دور واحد للعديد من المستخدمين.

أوصي بقراءة هذا: https://laravel.com/docs/5.2/eloquent-relationships#many-to-many

هذا لـ Laravel 5.2 ، لكنك سترى تلك الوثائق لكل إصدار من Laravel 5.x. ستتعلم هناك كيفية بناء هذه العلاقات وكيفية استخدامها بفعالية.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام