मेरे पास साइट के दो संस्करण हैं एक example.com पर चल रहा है और दूसरा example.com/version2 पर।

Web.php में मेरे पास है

    Route::group(['middleware'=>['webconfig'],'prefix'=>'version2'], function(){
        //Routes for version2 site
    });
// Routes for main site

वेबकॉन्फिग मिडलवेयर में मैंने वर्जन 2 साइट के लिए डेटाबेस कनेक्शन सेट किया है। जो ठीक काम कर रहा है लेकिन मैं वर्जन 2 साइट के लिए बेस यूआरएल भी सेट कर रहा हूं। जो काम नहीं कर रहा है url() विधि example.com लौटाती है यहाँ मेरा वेबकॉन्फ़िग मिडलवेयर है

public function handle($request, Closure $next)
    {
        \Config::set('database.default', 'mysql_us');
        \Config::set('app.url', url('version2'));
        return $next($request);
    }

तो मैं बेस यूआरएल डायनामिकली कैसे सेट कर सकता हूं।

1
Amarjit Singh 5 पद 2017, 17:48

2 जवाब

सबसे बढ़िया उत्तर

अपनी .env फ़ाइल में APP_URL=http://example.com/version2 निर्दिष्ट करें

1
Sergei Krivosheenko 5 पद 2017, 22:19

चूंकि आपका 2 संस्करण एक ही होस्टिंग में परिनियोजित किया गया है और आप अपने नए संस्करण के लिए बस एक उपसर्ग 'version2' जोड़ते हैं। क्यों न केवल एक मिडलवेयर बनाया जाए जिसने आपके सेगमेंट (1) की जाँच की हो, यदि यह संस्करण 2 है या नहीं तो सही डेटाबेस सेट करें जिसका वह उपयोग करेगा। मेरा मानना ​​है कि जब उपयोगकर्ता version2 सेगमेंट में हों, तो आप दूसरे डेटाबेस पर रीडायरेक्ट करना चाहते हैं, क्या मैं सही हूं?

इस मामले में आप अपने मिडलवेयर में इस तरह के समाधान का उपयोग कर सकते हैं,

if(Str::lower($request->segment(1) == "version2"){
    config()->set('database.default', 'mysql_us');
}else{
    //your another config.
}

मुझे उम्मीद है कि यह आपकी समस्या में आपकी मदद करेगा।

2
Kenneth Sunday 6 पद 2017, 18:41