Mehdy
2 سال پیش توسط Mehdy مطرح شد
1 پاسخ

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

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


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش آپدیت شد
1

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

ولی به هر حال اگر اصرار به یکی بودنشون دارید، یکی از راهکارهای قابل طرح ساخت یک 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 میدلور فوق رو به نحوی اضافه کنید که پیش از سایر بخش ها اعمال بشه.


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

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