appstract/laravel-multisite

Laravel 多站设置

1.1.0 2019-05-23 09:23 UTC

This package is auto-updated.

Last update: 2024-09-23 21:24:16 UTC


README

Latest Version on Packagist Total Downloads Software License Build Status

使用此包,您可以在一个代码库上构建多个网站/(子)域。

安装

您可以通过 composer 安装此包

composer require appstract/laravel-multisite

配置(主机、Homestead)

您需要将网站添加到您的 /etc/hosts 文件和 Homestead.yaml 文件中。例如,mywebsite.devblog.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)。有关更多信息,请参阅 许可文件