onepoint / dashboard
Laravel仪表板仓库和视图
1.3.06
2021-11-01 09:01 UTC
Requires
- laravel/framework: >=6.2
This package is auto-updated.
Last update: 2024-09-28 05:24:59 UTC
README
后台操作界面及基本权限功能
安装laravel
直接从Github下载Laravel Github
一些提示步骤
composer install
複製 .env 檔案
php artisan key:generate
Homestead
laravel new 專案資料夾名稱
使用Composer安装onepoint/dashboard
执行
composer require onepoint/dashboard
在config/app.php的providers中添加
Onepoint\Dashboard\DashboardServiceProvider::class,
将必要文件复制到正确目录
先删除此文件
rm database/migrations/2014_10_12_000000_create_users_table.php
执行
php artisan vendor:publish --provider="Onepoint\Dashboard\DashboardServiceProvider"
解压vendor.zip(tinymce文件管理界面用文件)
unzip public/vendor.zip
rm public/vendor.zip
数据库设置
在这个文件中设置数据库的账号密码
- 将app/Providers/AppServiceProviderSample.php的内容复制到app/Providers/AppServiceProvider.php
- 删除app/Providers/AppServiceProviderSample.php
- 修改app/Providers/AppServiceProvider.php中的数据库名称密码等信息
- 修改.env中的数据库账号密码
创建数据库,创建时选择utf8mb4编码的数据库
执行以下指令重新生成Composer的自动读取文件列表,以免执行seed指令时找不到文件
composer dump-autoload
加入内容database/seeders/DatabaseSeeder.php
public function run()
{
...
$this->call([
UsersTableSeeder::class,
RolesTableSeeder::class,
RoleUsersTableSeeder::class,
SettingsTableSeeder::class,
]);
}
执行以下指令建立默认的表及默认数据,执行前先修改.env中的数据库账号密码,在artisan中不会去读取app/Providers/AppServiceProvider.php设置的数据库账号密码。
php artisan migrate --seed
清空数据库,重新建立默认数据(想要重置数据库才需要执行的指令)
php artisan migrate:refresh --seed
修改config/auth.php
將 user model 改成自訂的 user model
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Onepoint\Base\Entities\User::class,
],
...
],
config/database.php
connections.mysql.strict 要改成 false
安装必要的Package
文章管理功能
在前面 publish 步驟時已建立 packages 資料夾,裡面有一個 base 套件
composer.json 加上
"autoload": {
"psr-4": {
…
"Onepoint\\Base\\": "packages/onepoint/base/src"
}
},
執行
composer dump-autoload
在 config/app.php 加上
'providers' => [
…
Onepoint\Base\BaseServiceProvider::class,
]
如果前台也要使用 package 的方式,可以參照 base 的方式建立資料夾,分別在 composer.json 及 config/app.php 加內容
缩略图Package
composer require intervention/image
// app.php 加入內容
'providers' => [
...
Intervention\Image\ImageServiceProvider::class
]
'aliases' => [
...
'Image' => Intervention\Image\Facades\Image::class
]
// 執行
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
excelPackage
composer require maatwebsite/excel
// app.php 加入內容
'providers' => [
...
Maatwebsite\Excel\ExcelServiceProvider::class,
]
'aliases' => [
...
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
// 執行
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
查看LogPackage
composer require rap2hpoutre/laravel-log-viewer
// app.php 加入內容
'providers' => [
...
Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class,
]
// 在 route 檔案中增加規則
Route::get('logs', '\Rap2hpoutre\LaravelLogViewer\LogViewerController@index');
编辑器文件管理Package
COMPOSER_MEMORY_LIMIT=-1 composer require unisharp/laravel-filemanager
// app.php 加入內容
'providers' => [
...
UniSharp\LaravelFilemanager\LaravelFilemanagerServiceProvider::class,
]
// 執行
php artisan vendor:publish --tag=fm-config
php artisan vendor:publish --tag=fm-assets
认证相关设置
修改user.php路径
config/auth.php
'model' => App\User::class,
修改為
'model' => Onepoint\Dashboard\Entities\User::class,
如果前台有要做會員登入,在 guards 新增元素
'member' => [
'driver' => 'session',
'provider' => 'members',
],
在 providers 新增元素
'members' => [
'driver' => 'eloquent',
'model' => Onepoint\Reading\Entities\Member::class,
],
在 passwords 新增元素
'members' => [
'provider' => 'members',
'table' => 'password_resets',
'expire' => 15,
],
在 app/Http/Kernel.php 增加登入檢查方法
protected $routeMiddleware = [
...
// Guard 登入檢查
'auth.guard' => \Onepoint\Dashboard\Middleware\AuthenticateGuard::class,
];
上传文件相关设置
建立软链接
php artisan storage:link
在虛擬主機上可以用這個網址來建立(相關的 route 規則要打開)
http://url/backend/dashboard/storage-link
預設目錄不是 public 的時候,要修改這個檔案
app/Providers/AppServiceProvider.php
public function register()
{
$this->app->bind('path.public', function() {
return base_path('../public_html');
主程式放在 public 底下的 private 時使用的方法
return $_SERVER['DOCUMENT_ROOT'];
});
}
public function boot()
{
// 強制使用 https
\URL::forceScheme('https');
}
修改设置
config/app.php
'url' => env('APP_URL', 'https://'),
修改為
'url' => APP_URL,
'timezone' => 'UTC',
修改為
'timezone' => 'Asia/Taipei',
config/filesystems.php
'public' => [
'url' => env('APP_URL').'/storage',
修改為
'url' => config('app.url').'/storage',
],
.env
APP_DEBUG=false
Homestead上传文件大小修改
默认只能上传小于1M的文件,修改后会有更好的测试效果
在設定檔中的 http 中加一行上傳檔案大小設定
sudo nano /etc/nginx/nginx.conf
http {
client_max_body_size 100M;
}
預設可上傳 100M, 正常情況不用修改
sudo nano /etc/php/7.4/fpm/php.ini
要修改的項目
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 10M
Homestead修改Mysql时区
cd /etc/mysql/mysql.conf.d
sudo nano mysqld.cnf
在 [mysqld] 區塊下面增加一行
default-time-zone='+08:00'
404转跳首页
app/Exceptions/Handler.php
NotFoundHttpException 使用物件
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
public function render($request, Exception $exception)
{
if ($exception instanceof NotFoundHttpException) {
// return redirect()->route('home');
return redirect('index');
}
if ($exception instanceof \Illuminate\Session\TokenMismatchException) {
return redirect('index');
}
return parent::render($request, $exception);
}