راکت

دتا بیس دمو در لاراول

1 پاسخ

سلام
می خوام وقتی دمو پروژه را نمایش میدم روی دیتا بیس اصلی اطلاعات ندهم
چک کردم و می دونم امکان این وجود داره که چندتا دیتا بیس داشته باشیم و امکان این هم وجود داره که بگیم کدوم مدل از کانکشن کدام دیتا بیس استفاده کنه
ولی میخوام اگر کاربر یک نفر خاص بود (demo بود ) همه کانکشن ها بدون استثنا بره سمت دیتا بیس دوم
ایا کسی ایده داره ؟

ثبت پرسش جدید

پاسخ‌ها

1
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

اول اینکه به نظرم بهتر باشه برای دمو از یک دامنه یا حداقل زیردامنه مستقل استفاده کنید. هم از نظر امنیتی بهتره و هم بهره‌وری و هم دستتون برای یکسری اقدامات دیگر باز تره.

ولی به هر حال اگر اصرار به یکی بودنشون دارید، یکی از راهکارهای قابل طرح ساخت یک Middleware هست که در اون userid رو چک کنیدو اگر همون کاربر مدنظرتون بود با استفاده از دستور زیر، کانکشن دیتابیستون رو تغییر بدید:

 namespace App\Http\Middleware;

    use Closure;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Auth;

class SelectDB    {

    public function handle(Request $request, Closure $next) {
        if (Auth::id  === 1) {
            DB::setDefaultConnection('mysqltest');
        }
        return $next($request);
    }
}

توجه کنید که لازمه در config/databse.php و فایل .env تنظیمات مربوط به کانکشن دیگر رو هم اضافه کنید. و اینکه در App\Http\Kernel میدلور فوق رو به نحوی اضافه کنید که پیش از سایر بخش ها اعمال بشه.

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

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

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