Laravel Nova 安装
要求
在安装之前,Laravel Nova 有些要求,需要你注意一下:
- Composer
- Laravel Framework 5.6+
- Laravel Mix
- Node.js & NPM
安装 Nova
只要购买一份 Nova 许可,你就可以在 Nova 官网的「releases」部分下载一份 Nova 发行版。下载完包含 Nova 源码的 Zip 文件后,需要在你 Laravel 应用的 composer.json
文件里用 Composer 的「path」仓库安装它。
首先,将 Nova 发行版压缩包解压到你的应用根目录下的 nova
文件夹里。只要解压并放置 Nova 源代码到合适的目录,就应更新 composer.json
文件。请将以下配置添加到 composer.json
文件中:
"repositories": [
{
"type": "path",
"url": "./nova"
}
],
隐藏文件
当解压 Nova 到
nova
文件夹后,请确认 Nova 的「隐藏」文件(例如.gitignore
文件)也包含在内。
接下来,将 laravel/nova
添加到 composer.json
的 require
字段:
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.6.*",
"laravel/nova": "*"
},
修改 composer.json
文件之后,在控制台终端运行 composer update
命令:
composer update
最后,运行 nova:install
和 migrate
Artisan 命令。nova:install
命令将在你的应用中安装 Nova 的服务提供者,并发布资源文件:
php artisan nova:install
php artisan migrate
运行完以上命令后,请确认 App\Providers\NovaServiceProvider
被添加到了你的 app.php
配置文件里。如果没有,请手动添加。当然,如果你的应用不使用 App
命名空间,你应该按需更新该服务提供者的类名。
默认的 App\Nova\User
Nova 资源引用了 App\User
模型。如果你的模型放在别的目录或命名空间,请在资源中调整此值:
public static $model = 'App\\Models\\User';
好的!接下来,你可以在浏览器中访问应用的 /nova
路径,然后你会看到 Nova 管理面板,其中包含指向本文档各部分的链接。
包的稳定性
如果由于
minimum-stability
的设置导致无法为你的应用安装 Nova,请考虑将minimum-stability
的值设置为dev
、将prefer-stable
的值设置为true
。这将允许为你的应用安装 Nova,同时仍保留优先安装稳定发行版。
授权 Nova
在你的 app/Providers/NovaServiceProvider.php
文件中,有一个 gate
方法。此授权 gate 控制了 非本地 环境对 Nova 的访问。默认当应用环境是 local
时,任何人都可以访问 Nova 面板。你可以按需自由修改此 gate
方法,以限制对 Nova 的访问:
/**
* 注册 Nova gate。
*
* 此 gate 决定了谁可以在非本地环境访问 Nova 。
*
* @return void
*/
protected function gate()
{
Gate::define('viewNova', function ($user) {
return in_array($user->email, [
'taylor@laravel.com',
]);
});
}
更新 Nova
要更新你的 Nova 安装版,可以从 Nova 官网下载一份发行版 Zip 文件。下载完后,用此 Zip 文件的内容替换应用根目录下 nova
文件夹的内容。在更新完目录内容后,你可以运行 composer update
和 nova:publish
命令:
composer update
php artisan nova:publish
nova:publish
命令将会重新发布 Nova 的公共资源、配置、视图和语言文件。此命令不会覆盖已存在的配置、视图或语言文件。如果想覆盖已存在的文件,你可以在执行它时使用 --force
标志:
php artisan nova:publish --force
报告 Bug
如果你在 Laravel Nova 中发现 Bug,请在 Nova issues 的 GitHub 仓库提交 Issue 。
更多建议: