zoukankan      html  css  js  c++  java
  • laraveladmin 使用

    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');
  • 相关阅读:
    sql子查询
    java中entity和object的区别
    eclipse F3可以查询某个方法的具体定义
    SQL语句的MINUS,INTERSECT和UNION ALL
    jquery 循环获取checkBox的值,以及对复选框选中,取消,操作按钮
    jQuery 函数位于一个 document ready 函数中
    <script>的用法
    jquery ui-----弹出窗口 dialog
    util包就是用来放一些公用方法和数据结构的
    BigDecimal
  • 原文地址:https://www.cnblogs.com/fslnet/p/15576851.html
Copyright © 2011-2022 走看看