اذهب إلى المحتوى
  • 0

لا يمكن استدعاء Auth :: user في باني المتحكم

Mahmoud Alrashidi

السؤال

أحاول التحقق مما إذا كان المستخدم لديه الصلاحية لنموذج معين في لارافيل، أضفت هذا الكود إلى الباني:

public function __construct()
{
    if (!Auth::user()->hasPermission('usergroups')) {
        abort(404);
    }
}

ترجع Auth :: user القيمة null عند استدعائها من الباني.لكن إن استخدمتها  في أي تابع آخر ، فإنه يعيد المستخدم الذي قام بتسجيل الدخول حاليًا، لماذا لا تعمل في الباني.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

لا يمكن الوصول إلى session في construct() بسبب أنّ construct يعمل قبل middleware

ولحل هذه المشكلة نقوم بالتحقق من الـ middleware بداخل الـ construct

كالآتي:

    protected $user;

    public function __construct()
    {
        $this->middleware(function ($request, $next) {
            $this->user = Auth::user();

            return $next($request);
        });
    }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

و للإضافة فالدالة  

Auth()

لا  تعمل إلا إذا كانت داخل middleware  web يعني في ملف routes الخاصة بك يكفي إضافة الكود التالي:

Route::group(['middleware' => 'web'], function () {
    //   routes هنا تكتب جميع 
    //  ستقوم بإرجاع المستخدم اللذي سجل دخوله Auth::user() أي متحكم يكتب هنا الدالة 
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...