آفلاین
user-avatar

ارتباط بین modelها جهت نمایش اطلاعات

2 سال پیش
توسط erfan98 آپدیت شد
آفلاین
user-avatar
erfan98 ( 100 تجربه )
2 سال پیش

سلام من سه تا جدول دارم به نام های زیر
جدول user
جدولrole

id---types
read-----10
20------write

جدولroleuser

id---user_id---role_id
10-----20-----1
20------20----2

اینم مدل هر قسمت

class Role extends Model
{
    protected $fillable = [
        'id', 'types',
    ];
    public function roleuser(){
        return $this->belongsTo('AppRoleuser');
    }
}

class Roleuser extends Model
{
    protected $fillable = [
        'role_id', 'user_id', 'active',
    ];
    public function user(){
        return $this->hasOne('AppUser');
    }
    public function role(){
        return $this->hasMany('AppRole');
    }
}

class User extends Authenticatable
{

    public function roleuser(){
        return $this->belongsTo('AppRoleuser');
    }
}

کد کنترلر جهت واکشی نقش هر کاربر و نمایش در جدول

        $roles=Roleuser::all();
        return view('admin.role.maneger',compact('roles'));

کد نمایش view

                @foreach($roles as $role)
                {{ $role->role->types }}
                @endforeach

میخواستم بدونم باید چیکار کنم تا داده ها رو نشون بده در view
شاید هم استباه تعریف کردم رابطه هارو
خطای زیر رو بهم میده

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'roles.roleuser_id' in 'where clause' (SQL: select * from `roles` where `roles`.`roleuser_id` = 24 and `roles`.`roleuser_id` is not null) (View: C:\laragon\www\lan-hospital\resources\views\admin\role\maneger.blade.php)
آفلاین
user-avatar
developer ( 33462 تجربه )
2 سال پیش
تخصص : برنامه نویس

باید دو تا مدل داشته باشی یوزر و رول
مدل سوم یعنی رولیوزر لازم نیست

رابطه ها هم توی مدل رول باید بگی بیلانگزتومنی
توی یوزر باید بگی هزمنی

آفلاین
user-avatar
erfan98 ( 100 تجربه )
2 سال پیش

درواقع من مدل سوم رو باید داشته باشم برای کنترل کاربرام
در حالت عادی وقتی کاربر ثبت نام می مکند
جدول رول یوز به صورت زیر میشه

id----user_id-----role_id----active
0---------1---------5-------1

جدول فوق میگه که کاربر 5نقش شماره یک غیرفعال هست
حالا نقش یک مثلن ایجاد مقاله هست و صفر یعینی غیرفعال هست

برای ارسال پاسخ باید وارد سایت شوید