1,安裝
composer require encore/laravel-admin:1.* php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider" php artisan admin:install
2,啓動服務後,在瀏覽器打開 http://localhost/admin/
,使用用戶名 admin
和密碼 admin
登錄.
3,如何登錄成功,修改路由進行配置。
在路由配置文件app/Admin/routes.php
裏添加一行:$router->resource('/water', WaterController::class);
use Illuminate\Routing\Router; Admin::routes(); Route::group([ 'prefix' => config('admin.route.prefix'), 'namespace' => config('admin.route.namespace'), 'middleware' => config('admin.route.middleware'), 'as' => config('admin.route.prefix') . '.', ], function (Router $router) { $router->get('/', 'HomeController@index')->name('home'); $router->resource('/water', WaterController::class); });:
4,創建model文件。在文件夾app\Models下面創建模型文件Water.php。創建時應該在數據庫中創建相應的數據表
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Water extends Model { protected $table = 'water'; public $timestamps = false;//會禁止默認的create_at 和 `updated_at 字段使用 }
5,創建控制器。在文件夾app\Admin\Controllers 創建文件WaterController.php
<?php namespace App\Admin\Controllers; use Encore\Admin\Controllers\AdminController; use Encore\Admin\Form; use Encore\Admin\Grid; use Encore\Admin\Show; use Encore\Admin\Facades\Admin; use App\Models\Water; class WaterController extends AdminController { /** * Title for current resource. * * @var string */ protected $title = '水情信息'; /** * Make a grid builder. *列表頁 * @return Grid */ protected function grid() { $grid = new Grid(new Water); // 搜索 $grid->filter(function($filter){ $filter->column(1/2, function ($filter) { $filter->like('title'); $filter->between('rate'); }); $filter->column(1/2, function ($filter) { $filter->equal('created_at')->datetime(); $filter->between('updated_at')->datetime(); $filter->equal('released')->radio([ 1 => 'YES', 0 => 'NO', ]); }); /* $filter->disableIdFilter();//去掉默認的id過濾器 $filter->like('name1', '名稱1'); $filter->between('datetime', '發佈日期')->date(); $filter->in('time1', '時間')->select([ 1 => '華爲', 2 => '小米', 3 => 'OPPO', 4 => 'vivo', ]); $filter->in('upfile', '狀態')->checkbox([ 0 => '未知', 1 => '已下單', 2 => '已付款', 3 => '已取消', ]); $filter->group('name2', function ($group) { $group->gt('大於'); $group->lt('小於'); $group->nlt('不小於'); $group->ngt('不大於'); $group->equal('等於'); }); $filter->equal('datetime')->datetime(); $filter->equal('time2')->radio([ 1 => 'YES', 0 => 'NO', ]); */ }); //$grid->model()->where('id', '>', 2900); $grid->model()->orderBy('id', 'desc'); $grid->id('id')->sortable(); //$grid->title('標題'); $grid->name1('名稱1'); $grid->name2('名稱12'); $grid->time1('時間'); $grid->uppic('圖片')->image();; $grid->datetime('修改時間'); $grid->paginate(30); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Water::findOrFail($id)); $show->panel() ->style('danger') ->title('基本信息'); $show->field('id', __('ID')); $show->field('name1', '名稱1'); $show->field('name2', '名稱2'); $show->field('uppic', '圖片')->image() ; $show->time1()->label(); $show->divider(); $show->field('datetime', '修改時間'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { //admin_toastr('Message...', 'success'); //admin_toastr('Message...', 'success', ['timeOut' => 5000]); $form = new Form(new Water); $form->display('id', __('ID')); //$form->text('titel', '標題'); $form->text('name1', '名稱1')->placeholder('請輸入名稱'); $form->text('name2', '名稱2'); $form->text('time1', '時間'); $form->datetime('dateTime', '發佈時間'); $form->number('name3', '打分'); $form->image('uppic','圖片上傳')->thumbnail('small', $width = 300, $height = 300);; $form->file('upfile','文件上傳'); // 添加開關操作 //$form->switch('released', '發佈'); //$form->html(view('admin.public') ); return $form; } }
6,集成ckeditor編輯器
composer require laravel-admin-ext/ckeditor
php artisan vendor:publish --tag=laravel-admin-ckeditor
修改config/admin.php
'extensions' => [ 'ckeditor' => [ //Set to false if you want to disable this extension 'enable' => true, // Editor configuration 'config' => [ ] ] ]
修改 config.js 添加如下代碼
config.filebrowserImageUploadUrl='/admin/upload'; config.filebrowserUploadMethod ='form'
修改ckeditor/plugins/image/dialogs/image.js
中搜索Upload 把id:"Upload",hidden:!0, 更改id:"Upload",hidden:false,
修改routes/web.php增加
Route::post('/admin/upload','CkeditorUploadController@uploadImage');
創建文件上傳控制器
php artisan make:controller ckeditorUploadcontroller
文件內容是
namespace App\Admin\Controllers; use Encore\Admin\Controllers\AdminController; use Encore\Admin\Form; use Encore\Admin\Grid; use Encore\Admin\Show; use Encore\Admin\Facades\Admin; use Illuminate\Support\Facades\Storage; use Encore\Admin\Layout\Content; use Illuminate\Http\Request; class ckeditorUploadcontroller extends AdminController { public function uploadImage(Request $request){ $image=request()->file('upload'); $path=$image->store('images'); $url=Storage::disk('admin')->url($path); $callback=$request->input("CKEditorFuncNum"); $CKEditor=$request->input("CKEditor"); return "<script>window.parent.CKEDITOR.tools.callFunction(1,'{$url}','')</script>"; } }
編輯器調用的頁面直接使用如下方式調用編輯器
$form = new Form(new Water); $form->ckeditor('content');