不同控制器予有需要的服务的多个域,例如,firstdomain.com,seconddomain.com,thirddomain.com一个Laravel应用。不论域名如何,逻辑层保持不变,但演示文稿会发生变化。因此,我想为每个域调用一组不同的控制器。我怎样才能做到这一点?Laravel:选择每个请求主机
我创建了一个中间件,获取值$_SERVER['HTTP_HOST']
并将其设置为请求对象上的一个属性,但我不确定该从哪里去。理想情况下,我会将它设置为一组控制器的名称空间前缀。
不同控制器予有需要的服务的多个域,例如,firstdomain.com,seconddomain.com,thirddomain.com一个Laravel应用。不论域名如何,逻辑层保持不变,但演示文稿会发生变化。因此,我想为每个域调用一组不同的控制器。我怎样才能做到这一点?Laravel:选择每个请求主机
我创建了一个中间件,获取值$_SERVER['HTTP_HOST']
并将其设置为请求对象上的一个属性,但我不确定该从哪里去。理想情况下,我会将它设置为一组控制器的名称空间前缀。
您可以将您的控制器。在他们的领域实现分歧群体。您还可能有共同的控制器共享:
// Common route
Route::get('about', '[email protected]');
// Diverge by domain
Route::group(['domain' => 'foodomain.com'], function() {
Route::resource('task', 'FooTaskController');
});
Route::group(['domain' => 'bardomain.com'], function() {
Route::resource('task', 'BarTaskController');
});
Route::group(['domain' => 'loldomain.com'], function() {
Route::resource('task', 'LolTaskController');
});
你也可以拥有这些控制器从共同的父类Controller
,其中任何共享的逻辑会去继承
<?php
namespace App\Http\Controllers;
class FooTaskController extends TaskController
(...)
class BarTaskController extends TaskController
(etc ...)
您的意见也可以由dom ain:
\app
\bootstrap
\resources
\assets
\lang
\views
\foo
task.blade.php
home.blade.php
\bar
task.blade.php
home.blade.php
\lol
task.blade.php
home.blade.php
感谢tech1000,这正是我一直在寻找.. 。 –
我已经更新了下面的答案,以在一个应用程序中工作。一点题外话,有没有必要写一个自定义的中间件皮卡域到请求,它已经可以作为:'支持::服务器(“HTTP_HOST”)' – Cyril