راکت
حل شده

مشکل در middleware

8 پاسخ

دوستان من یک 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');
        }
    }
}
ثبت پرسش جدید

پاسخ‌ها

8
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

بهترین پاسخ

سلام
@mohsenbostan

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

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@mohsenbostan

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

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

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

Auth::loginUsingId();

شاید پاسخ شما همین‌جا باشد

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

public function __construct()
    {
        Auth::loginUsingId();
        $this->middleware('auth');
        $this->middleware('checkActivation')->except(['plan', 'buyPlan', 'verifyPay', 'verify']);
    }
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

Auth::loginUsingId(1);
        $this->middleware('checkActivation')->except(['plan', 'buyPlan', 'verifyPay', 'verify']);
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام