اذهب إلى المحتوى
  • 0

كيفية تجميع عدد من النطاقات Domains عند إنشاء مسارات Routes في لارافيل Laravel؟

Emad Saif

السؤال

لدي مجموعة من النطاقات الفرعية subdomains وفي كل نطاق فرعي لدي نفس المسارات تمامًا، وحاليًا أقوم بكتابة الكود بالشكل التالي:

Route::group(array('domain' => array('dashboard.example.com')), function()
{
    // ...
});

Route::group(array('domain' => array('dev.example.com')), function()
{
    // ...
});

في الكود السابق أقوم بكتابة نفس المسارات مرتين مما يجعل الكود مكررًا بدون فائدة.

هل توجد طريقة لتجميع النطاقات معًا في لارافيل Laravel بدلًا من تكرار الكود بالشكل التالي؟

Route::group(array('domain' => array('dev.example.com','dashboard.example.com')), function()
{
    // ...
});

 

تم التعديل في بواسطة Emad Saif
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

السبب وراء هاته الفكرة ليس واضحا، ولكن كون المعامل الثاني الذي يستقبله التابع group عبارة عن شيفرة تنفذ executable فسيمكنك بنفس المنطق تحقيق ذلك عن طريق تعريف كامل مساراتك بشكل منفصل وحقنها كمعامل ثان في كل تعريف للنطاقين الفرعين، يكون ذلك كـ: 

$my_routes = function() {
    Route::get('/home', HomeController::class); 
    Route::get('/admin', AdminController::class);  
};

Route::group(array('domain' => 'app.example.com'), $my_routes);
Route::group(array('domain' => 'dashboard.example.com'), $my_routes);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

من خلال جلب اسم النطاق من خلال الدالة التالية 

$domain = request()->getHost();

و من ثم التحقق من وجود هذا النطاق في مصفوفة النطاقات كالتالي 

$domain = request()->getHost();

if(in_array($domain, $domains)){
	Route::group(['domain' => $domain], $definition);
}

يمكننا تجميع النطاقات المكررة بداخل group و بالتالي تكون دالة تجميع النطاقات كالتالي 

Route::macro("domain", function(array $domains, \Closure $definition) {
    $domain = request()->getHost();

    if(in_array($domain, $domains)){
        Route::group(['domain' => $domain], $definition);
    }
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...