• 08-03-2024, 17:57:16
    #1
    Yönetici yetki atamasında sorun yaşıyorum. Yönetici oluşturma kısmında bir sorun yok ancak oluşturulan yöneticiye rol atanmıyor. veritibanı tablosunda model_has_roles tablosunda ilgili rol yapısı oluşması gerekirken oluşmuyor. Aldığım hata şu şekilde :

    There is no role named `18` for guard `web`.
    Hata Satırları:
    if ($request->roles) {
     $user->assignRole($request->roles);
     }
    public function YoneticiEklePost(Request $request)
        {
            $user = new User();
            $user->username = $request->username;
            $user->name = $request->name;
            $user->email = $request->email;
            $user->phone = $request->phone;
            $user->password = Hash::make($request->password);
            $user->role = 'admin';
            $user->status = '1';
            $user->save();
            if ($request->roles) {
                $user->assignRole($request->roles);
            }
            $notification = array(
                'message' => 'Yönetici Başarılı Şekilde Oluşturuldu.',
                'alert-type' =>'success'
            );
            return redirect()->route('yoneticiler')->with($notification);
        }
    public function StoreRoles(Request $request)
        {
            Role::create([
                'name' => $request->name,
                'guard_name' => 'web',
            ]);
            $notification = array(
                'message' => 'Rol Başarılı Şekilde Eklendi.',
                'alert-type' =>'success'
            );
            return redirect()->route('all.roles')->with($notification);
        }
  • Kabul Edilen Cevap
    • $request->roles değeri büyük ihtimalle rol'ün idsini gönderiyor, sizin rolün adını göndermeniz gerekir veya önce gelen id ile rolün verilerini alıp daha sonra rol değişkeninizin adını kullanarak kullanıcıya rol atayabilirsiniz

       if ($request->roles) {
                  $role = Role::find($request->get('roles'));
                  $user->assignRole($role->name);
              }
  • 08-03-2024, 18:02:23
    #2
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    $request->roles değeri büyük ihtimalle rol'ün idsini gönderiyor, sizin rolün adını göndermeniz gerekir veya önce gelen id ile rolün verilerini alıp daha sonra rol değişkeninizin adını kullanarak kullanıcıya rol atayabilirsiniz

     if ($request->roles) {
                $role = Role::find($request->get('roles'));
                $user->assignRole($role->name);
            }
  • 08-03-2024, 18:05:03
    #3
    madlypixel adlı üyeden alıntı: mesajı görüntüle
    $request->roles değeri büyük ihtimalle rol'ün idsini gönderiyor, sizin rolün adını göndermeniz gerekir veya önce gelen id ile rolün verilerini alıp daha sonra rol değişkeninizin adını kullanarak kullanıcıya rol atayabilirsiniz

     if ($request->roles) {
                $role = Role::find($request->get('roles'));
                $user->assignRole($role->name);
            }
    Çok teşekkürler.