文件
安裝laravel
laravel new dcat-admin
安裝完 laravel
之後需要修改.env
檔案,設定資料庫連線設定正確
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dcat-admin
DB_USERNAME=dcat-admin
DB_PASSWORD=123456
安裝 dcat-admin
composer require dcat/laravel-admin:"2.*" -vvv
如果上一步出現報錯,則更改 composer.json 的引數 minimum-stability 的值為 dev。
然後執行下面的命令來發布資源:
php artisan admin:publish
然後執行下面的命令完成安裝:
php artisan admin:install
配置檔案
安裝完成之後,dcat-admin
所有的配置都在 config/admin.php
檔案中。
app/Admin/routes.php
檔案用來配置後臺路由。app/Admin/bootstrap.php
是dcat-admin
的啟動檔案,使用方法請參考檔案裡面的註釋.app/Admin/Controllers
目錄用來存放後臺控制器檔案,該目錄下的HomeController.php
檔案是後臺首頁的顯示控制器,AuthController.php
為後臺管理員登入鑑權控制器。app/Admin/Metrics/Examples
裡面存放的是資料統計卡片(Metric Card)
的示例程式碼.
靜態檔案
後臺所需的前端靜態檔案在 /public/vendor/dcat-admin
目錄下。
資料表遷移檔案
對應的資料表遷移檔案在 /database/migrations
目錄下。
語言包
語言包檔案在 /resources/lang
目錄下。
配置檔案
config/admin.php
預設訪問域名跳到後臺
web.php修改為
Route::redirect('/', '/admin');
啟動
php artisan serve --port 8000 --host 0.0.00
訪問
http://ip:8000/admin/auth/login
賬戶:admin
密碼:admin
laravel預設語言修改為中文
config/app.php 修改為
'locale' => 'zh_CN',
預設時區修改
config/app.php 修改為
'timezone' => 'PRC',
新增路由
<?php
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
use Dcat\Admin\Admin;
Admin::routes();
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->get('/', 'HomeController@index');
//網站設定
Route::get('/settings', 'SettingsController@index')->name('setting.index');
});
新增控制器
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Widgets\Card;
class SettingsController extends Controller
{
public function index(Content $content)
{
return '網站設定';
}
}
訪問
http://ip:8000/admin/settings
新增選單
新增
可拖動
翻譯
工具表單
工具表單
表單欄位使用
用命令 admin:form
來生成表單類檔案:
php artisan admin:form Setting
表單設定
/**
* Build a form here.
*/
public function form()
{
$this->confirm('您確定要提交設定嗎', '部分設定提交之後需要重新重新整理一下瀏覽器才能生效');
$this->text('webname', '網站名稱')->default(admin_setting('crmname', 'NXCASE案件管理系統'));
$this->url('weburl', '網站地址')->default(admin_setting('weburl', 'https://test.tt'))->help('正確填寫網址,並且必須以 / 結尾,否則會導致LOGO尤法顯示');
$this->image('logo', '網站LOGO')->accept('jpg,png,gif,jpeg')->maxSize(512)->required()->autoUpload()->help('大小不要超過512K');
$this->radio('horizontal menu', '選單位置')->options([0 => '側欄', 1 => '頂欄'])->default(admin_setting('horizontal menu', 0));
$this->radio('styletype', '網站風格')->options([1 => '舊版', 2 => '大字版'])->default(admin_setting('style type', 2));
$this->radio('sidebar style', '側欄顏色')->options(['light' => '白色', 'dark' => '黑色', 'primary' => '彩色'])->default(admin_setting('sidebar_style', 'dark'));
$this->radio('logintheme', '登入頁樣式')->options(['bigpicture' => '大圖', 'simple' => '簡單']);
$this->image('logobg', '登陸頁背景圖')->accept('jpgpng,gif,jpeg')->maxSize(1024)->autoUpload()->help('大小不要超過512K,僅在登入頁為大圖模式下生效');
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
return [
'logp' => admin_setting('logo', public_path() . '/static/img/logo.png'),
'color' => admin_setting('color', 'green'),
'body_class' => admin_setting('body_class', 'sidebar-separate'),
'sidebar_style' => admin_setting('sidebar_style', 'light'),
'bodyclass' => admin_setting('body class', 'sidebar-separate'),
'logintheme' => admin_setting('logintheme', 'bigpicture'),
'logobg' => admin_setting('logobg'),
'horizontal menu' => admin_setting('horizontal menu', 'false'),
'style type' => admin_setting('style type', 1),
];
}
建立軟連結
php artisan storage:link
提交處理邏輯
/**
* Handle the form request.
*
* @param array $input
*
* @return mixed
*/
public function handle(array $input)
{
// dump($input);
// return $this->response()->error('Your error message.');
return $this
->response()
->success('Processed successfully.')
->refresh();
}
登入頁面重寫
<?php
namespace App\Admin\Controllers;
use Dcat\Admin\Http\Controllers\AuthController as BaseAuthController;
use Dcat\Admin\Layout\Content;
class AuthController extends BaseAuthController
{
public function getLogin(Content $content)
{
if ($this->guard()->check()) {
return redirect($this->getRedirectPath());
}
$is_rewrite = true;
if ($is_rewrite) {
$logintheme = 'admin.login.login';
} else {
$logintheme = $this->view;
}
return $content->full()->body(view($logintheme));
// return $content->full()->body(view($this->view));
}
}
Config配置重寫
重寫config/admin.php
可以在app/Admin/bootstrap.php
下修改
Admin::baseCss(['static/css/supply' . admin_setting('style type', 2) . '.css'], true);
Admin::asset()->alias('@nunito', null, '');
Admin::asset()->alias('@montserrat', null, '');
$site_url = admin_setting('weburl');
$logo = '< img src="' . $site_url . 'storage/' . admin_setting('logo') . '"> ' . admin_setting('webname');
$logo_mini = '< img src="' . $site_url . 'storage/' . admin_setting('logo') . '">';
config([
'app.url' => admin_setting('weburl'),
'admin.title' => admin_setting('webname'),
'admin.name' => admin_setting('webname'),
'admin.logo' => $logo,
'admin.logo-mini' => $logo_mini,
'admin.layout.body class' => 'default',
'admin.layout.sidebar style' => admin_setting('sidebar_style'),
'admin.layout.dark mode switch' => true,
'admin.layout.color' => 'blue-light',
'admin.layout.horizontal menu' => admin_setting('horizontal menu')
]);
底部版權修改
把dcat-admin/vendor/dcat/laravel-admin/resources/views/layouts/container.blade.php
複製到/dcat-admin/resources/views/vendor/admin/layouts/container.blade.php
修改即可
控制檯元件修改
生成元件
[root@iZvixj0oze6411Z dcat-admin]# php artisan make:component blank_tips
INFO Component [app/View/Components/blank_tips.php] created successfully.
在/dcat-admin/resources/views/admin/home/index.blade.php
引入<x-blank_tips/>
即可
使用插槽
blank_tips.blade.php
<div>
Blade 控制檯元件<br/>
<h1> {{$title}}</h1>
<h5> {{$slot}}</h5>
<!-- Simplicity is the essence of happiness. - Cedric Bledsoe -->
</div>
/home/index.blade.php
<x-blank_tips>
<x-slot name="title">
歡迎使用後臺管理系統
</x-slot>
你可以從左側選單開始使用各項功能
</x-blank_tips>
開發工具(重點)
新增測試表
生成資料表
php artisan migrate
新增路由
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->get('/', 'HomeController@index');
$router->resource('test', 'TestController');
});
這樣一個簡單的 CURD 功能就構建完成了,剩下的工作就是深度構建資料表格和表單了,開啟 app/Admin/Contollers/TestController.php
, 找到 form()
和 grid()
方法,然新增構建程式碼。
更多詳細使用請檢視資料表格和資料表單。
本作品採用《CC 協議》,轉載必須註明作者和本文連結