• 23-09-2022, 08:17:10
    #1
    Merhaba,
    Bir proje için middleware kullanmaya karar verdim fakat bu süreçte bir sorun ile karşılaşıyorum.
    Daha doğrusu bunu yapmam mümkün mü emin değilim, teorik olarak mümkün gibi geldi bana fakat herhangi bir kaynak bulamadım bununla alakalı.
    Middleware içerisinde kullanıcı oturum bilgilerini ve erişim izni var mı gibi şeyleri kontrol ediyorum.
    Buna ek olarak her controllerda tekrar tekrar kullanıcı bilgilerini çekmek istemiyorum.
    Bunun yerinde kullanıcı bilgilerini middlewareden controllera renderlayabilir miyim?
    Örnek üzerinde gösterebilir misiniz?
    En basit anlatımı ile aşağıdaki gibi bir yapı istiyorum ama bunu doğru çalıştıramadım.

    return $next($request, $User);
  • 23-09-2022, 08:30:48
    #2
    Eğer oturum açan kullanıcı ise zaten direk auth fonksiyonu ile alabilirsin, değilse de biraz daha detay vermen lazım
  • 23-09-2022, 08:44:43
    #3
    Middleware bütün projelerinizde zaten kullanmanız gerekiyor. Sorunuza gelirsek belki başka bir şekilde yapabilirsiniz . Permission(https://spatie.be/docs/laravel-permi...5/introduction) kullanın her kullanıcının rolü olsun hangi kullanıcıya ne rol vereceğinizi seçersiniz "@can @endcan" ile bunları blade içerisinde gösterirsiniz.
    örnek olarak ben mesela böyle kullanıyorum sadece hangi controller içinde olmasına karar veriyorsun o karara göre __construct olarak tanımlıyorsun işlem tamam
    function __construct()
    {
    $this->middleware('permission:permission-list|permission-create|permission-edit|permission-delete', ['only' => ['permission.index','permission.store']]);
    $this->middleware('permission:permission-create', ['only' => ['permission.create','permission.store']]);
    $this->middleware('permission:permission-edit', ['only' => ['permission.edit','permission.update']]);
    }
  • 23-09-2022, 10:12:24
    #4
    Giriş yapmış kullanıcının bilgilerini almak için "auth()->user()->veritabanı_tablo_adı" ile ulaşabilirsiniz.