appstract / laravel-multisite
Laravel 多站设置
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: 5.*
README
使用此包,您可以在一个代码库上构建多个网站/(子)域。
安装
您可以通过 composer 安装此包
composer require appstract/laravel-multisite
配置(主机、Homestead)
您需要将网站添加到您的 /etc/hosts
文件和 Homestead.yaml
文件中。例如,mywebsite.dev
和 blog.mywebsite.dev
。在 Homestead.yaml
中,您需要将网站映射到相同的文件夹。
发布
在您的项目中运行 php artisan vendor:publish --provider="Appstract\Multisite\MultisiteServiceProvider"
,将发布多站的所有文件。将要发布的文件包括:一个迁移、一个种子和一个配置文件。
种子
种子将被发布,但在运行 php artisan db:seed
时需要运行,因此您需要在 DatabaseSeeder.php
文件中添加 $this->call(SitesTableSeeder::class);
。迁移和播种后,网站现在已存在于数据库中。
使用
这是主要部分,在您的 routes/web.php
中,您可以在路由组内为您的网站设置路由,如下所示
Route::group([ 'domain' => 'blog.'.config('multisite.host'), 'as' => 'blog.', 'middleware' => 'site:blog' ], function () { Route::get('/', 'BlogController@homepage')->name('homepage'); });
使用网站中间件 site:blog
发生魔法。这将告诉您的应用程序组内的路由属于博客。它将在所有视图中提供一个名为 $currentSite
的变量。还有一个配置可供使用,您可以使用 Config::get('multisite.site')
访问。
测试
$ composer test
贡献
欢迎贡献,感谢大家 :)
关于 Appstract
Appstract 是来自荷兰的一个小型团队。我们为 Web 开发创建(开源)工具,并在 Medium 上撰写相关主题。您可以在 Twitter 上关注我们,为我们买一杯啤酒 或 在 Patreon 上支持我们。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。