مشکل در middleware

- 3 هفته پیش
توسط Alimotreb آپدیت شد
محسن بستان ( 8020 تجربه )
3 هفته پیش

دوستان من یک middleware ساختم تا چک کنم که کاربر اگر فعال بود بزاره بره داخل مدیریت در غیر این صورت به صفحه پرداخت ببره.
اما مشکل اینجاست که بعد از فعالسازی هم بازم اونو میبره صفحه پرداخت :/


<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class CheckUserActivation
{
    public function handle()
    {
        if (Auth::user()->id_activate == false){
            return redirect('/plan');
        }
    }
}
بهترین پاسخ انتخاب شده توسط محسن بستان
Alimotreb
3 هفته پیش

سلام
@mohsenbostan

آخه 2 تا عملیات منطقی ساده هست!
اگر ارور بده که خب رفع میکنیم
اگه این چیزایی که میگید هست
کش مرور گر رو حذف کنید
کد هارو چک کنید سیو شده باشه
و ...
شاید از اینا باشه
چون توی کدتون من موردی ندیدم و باید اجرا بشه

Alimotreb ( 15557 تجربه )
3 هفته پیش

سلام
@mohsenbostan

اروری دریافت نمیکنید؟

    public function __construct()
{
   Auth::loginUsingId();
    $this->middleware('auth');
}

توی کنترلری که این عملیات رو دارید انجام میدید بزارید و با آیدی یوزری که حالا ادمین هست تست بگیرید میدلور رو هم مشخص کنید

محسن بستان ( 8020 تجربه )
3 هفته پیش

@Alimotreb
فقط صفحه اررور 500 رو نشون میده. البته اگر این رو بردارم همون اررور رو نمیده ومستقیم دوباره میره صفحه پرداخت :/

Auth::loginUsingId();
محسن بستان ( 8020 تجربه )
3 هفته پیش

@Alimotreb
این هم کد های داخل کنترلر هستش :

public function __construct()
    {
        Auth::loginUsingId();
        $this->middleware('auth');
        $this->middleware('checkActivation')->except(['plan', 'buyPlan', 'verifyPay', 'verify']);
    }
Alimotreb ( 15557 تجربه )
3 هفته پیش

یک میدلور رو انتخاب کنید
تو loginUsingId هم آیدی اون یوزر رو بزنید
و بعد تست بگیرید

محسن بستان ( 8020 تجربه )
3 هفته پیش

@Alimotreb
کد ها رو اینطوری کردم ولی بدون هیچ ارروری ری دایرکت میشه صفحه پرداخت

Auth::loginUsingId(1);
        $this->middleware('checkActivation')->except(['plan', 'buyPlan', 'verifyPay', 'verify']);
Alimotreb ( 15557 تجربه )
3 هفته پیش

این یوزر با آیدی 1
id_activate این مقدارش true هست یا false تو جدول؟
مقادیرش رو عددی کنید ، اگر 1 بود بره اگر 5 بود نره ( به جای true ، false)
این مورد رو هم تست بگیرید

محسن بستان ( 8020 تجربه )
3 هفته پیش

@Alimotreb
مقدار داخل دیتابیس 1 هست. با هر عدد دیگه ای هم باشه بازم نتیجه متاسفانه یکیه

Alimotreb ( 15557 تجربه )
3 هفته پیش

سلام
@mohsenbostan

آخه 2 تا عملیات منطقی ساده هست!
اگر ارور بده که خب رفع میکنیم
اگه این چیزایی که میگید هست
کش مرور گر رو حذف کنید
کد هارو چک کنید سیو شده باشه
و ...
شاید از اینا باشه
چون توی کدتون من موردی ندیدم و باید اجرا بشه

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