Mahmoud Alrashidi نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 أحاول التحقق مما إذا كان المستخدم لديه الصلاحية لنموذج معين في لارافيل، أضفت هذا الكود إلى الباني: public function __construct() { if (!Auth::user()->hasPermission('usergroups')) { abort(404); } } ترجع Auth :: user القيمة null عند استدعائها من الباني.لكن إن استخدمتها في أي تابع آخر ، فإنه يعيد المستخدم الذي قام بتسجيل الدخول حاليًا، لماذا لا تعمل في الباني. اقتباس
0 Waleed Alfakiat نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 لا يمكن الوصول إلى session في construct() بسبب أنّ construct يعمل قبل middleware ولحل هذه المشكلة نقوم بالتحقق من الـ middleware بداخل الـ construct كالآتي: protected $user; public function __construct() { $this->middleware(function ($request, $next) { $this->user = Auth::user(); return $next($request); }); } اقتباس
0 محمد أيت لعرايك نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 و للإضافة فالدالة Auth() لا تعمل إلا إذا كانت داخل middleware web يعني في ملف routes الخاصة بك يكفي إضافة الكود التالي: Route::group(['middleware' => 'web'], function () { // routes هنا تكتب جميع // ستقوم بإرجاع المستخدم اللذي سجل دخوله Auth::user() أي متحكم يكتب هنا الدالة }); اقتباس
السؤال
Mahmoud Alrashidi
أحاول التحقق مما إذا كان المستخدم لديه الصلاحية لنموذج معين في لارافيل، أضفت هذا الكود إلى الباني:
ترجع Auth :: user القيمة null عند استدعائها من الباني.لكن إن استخدمتها في أي تابع آخر ، فإنه يعيد المستخدم الذي قام بتسجيل الدخول حاليًا، لماذا لا تعمل في الباني.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.