laravel-admin自动生成模块,及相关基础配置方法


Posted in PHP onOctober 08, 2019

一、模型创建、数据迁移、以及关联模型控制器

$ php artisan make:model Brand -m//创建模型并生成迁移文件
 
$ php artisan migrate//运行迁移
 
$ php artisan admin:make BrandController --model=App\Brand//创建关联Brand模型的控制器

二、问题:创建模型后,会生成一个临时文件(php artisan make:model Brand -m)

路径:database/migrations/2018_10_16_0000_create_模型名s_table.php

在up方法中加入数据表应有的字段,例如:

$table->text('content');

可用的字段类型

数据库结构生成器包含构建表时可以指定的各种字段类型:

命令 描述
$table->bigIncrements('id'); 递增 ID(主键),相当于「UNSIGNED BIG INTEGER」
$table->bigInteger('votes'); 相当于 BIGINT
$table->binary('data'); 相当于 BLOB
$table->boolean('confirmed'); 相当于 BOOLEAN
$table->char('name', 4); 相当于带有长度的 CHAR
$table->date('created_at'); 相当于 DATE
$table->dateTime('created_at'); 相当于 DATETIME
$table->dateTimeTz('created_at'); 相当于带时区 DATETIME
$table->decimal('amount', 8, 2); 相当于带有精度与基数 DECIMAL
$table->double('column', 8, 2); 相当于带有精度与基数 DOUBLE
$table->enum('level', ['easy', 'hard']); 相当于 ENUM
$table->float('amount', 8, 2); 相当于带有精度与基数 FLOAT
$table->geometry('positions'); 相当于 GEOMETRY
$table->geometryCollection('positions'); 相当于 GEOMETRYCOLLECTION
$table->increments('id'); 递增的 ID (主键),相当于「UNSIGNED INTEGER」
$table->integer('votes'); 相当于 INTEGER
$table->ipAddress('visitor'); 相当于 IP 地址
$table->json('options'); 相当于 JSON
$table->jsonb('options'); 相当于 JSONB
$table->lineString('positions'); 相当于 LINESTRING
$table->longText('description'); 相当于 LONGTEXT
$table->macAddress('device'); 相当于 MAC 地址
$table->mediumIncrements('id'); 递增 ID (主键) ,相当于「UNSIGNED MEDIUM INTEGER」
$table->mediumInteger('votes'); 相当于 MEDIUMINT
$table->mediumText('description'); 相当于 MEDIUMTEXT
$table->morphs('taggable'); 相当于加入递增的 taggable_id 与字符串 taggable_type
$table->multiLineString('positions'); 相当于 MULTILINESTRING
$table->multiPoint('positions'); 相当于 MULTIPOINT
$table->multiPolygon('positions'); 相当于 MULTIPOLYGON
$table->nullableMorphs('taggable'); 相当于可空版本的 morphs() 字段
$table->nullableTimestamps(); 相当于可空版本的 timestamps() 字段
$table->point('position'); 相当于 POINT
$table->polygon('positions'); 相当于 POLYGON
$table->rememberToken(); 相当于可空版本的 VARCHAR(100) 的 remember_token 字段
$table->smallIncrements('id'); 递增 ID (主键) ,相当于「UNSIGNED SMALL INTEGER」
$table->smallInteger('votes'); 相当于 SMALLINT
$table->softDeletes(); 相当于为软删除添加一个可空的 deleted_at 字段
$table->softDeletesTz(); 相当于为软删除添加一个可空的 带时区的 deleted_at 字段
$table->string('name', 100); 相当于带长度的 VARCHAR
$table->text('description'); 相当于 TEXT
$table->time('sunrise'); 相当于 TIME
$table->timeTz('sunrise'); 相当于带时区的 TIME
$table->timestamp('added_on'); 相当于 TIMESTAMP
$table->timestampTz('added_on'); 相当于带时区的 TIMESTAMP
$table->tinyIncrements('id'); 相当于自动递增 UNSIGNED TINYINT
$table->tinyInteger('votes'); 相当于 TINYINT
$table->unsignedBigInteger('votes'); 相当于 Unsigned BIGINT
$table->unsignedDecimal('amount', 8, 2); 相当于带有精度和基数的 UNSIGNED DECIMAL
$table->unsignedInteger('votes'); 相当于 Unsigned INT
$table->unsignedMediumInteger('votes'); 相当于 Unsigned MEDIUMINT
$table->unsignedSmallInteger('votes'); 相当于 Unsigned SMALLINT
$table->unsignedTinyInteger('votes'); 相当于 Unsigned TINYINT
$table->uuid('id'); 相当于 UUID
$table->year('birth_year'); 相当于 YEAR

三、然后运行迁移和创建关联的控制器

$ php artisan migrate//运行迁移

$ php artisan admin:make BrandController --model=App\Brand//创建关联Brand模型的控制器

四、如果数据库表结构需要修改

如二步骤,修改完成,删除migrations表中相关的那条记录,并且删除相关表

再次运行迁移,此方法适用于无数据的表,已有数据库的表,请不要操作

$ php artisan migrate//运行迁移

五、新创建的后台模块与后台自带的模块不一样

新创建:

laravel-admin自动生成模块,及相关基础配置方法

后他自带:

laravel-admin自动生成模块,及相关基础配置方法

如果想改成后台自带这种样式的,就必须得调用系统自带的方法,如下:

1,先在需要添加的控制器中引入这些类:

use Encore\Admin\Show;
use Encore\Admin\Tree;
use Encore\Admin\Layout\Row;
use Encore\Admin\Widgets\Box;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Column;

2,并且在index方法中,所有的替换成如下代码:

return Admin::content(function (Content $content) {
 
   $content->header('Index');
   $content->description('description');
 
   $content->row(function (Row $row) {
 
    $row->column(6, $this->treeView()->render());
    $row->column(6, function (Column $column) {
     $form = new \Encore\Admin\Widgets\Form();
     $form->action(admin_base_path('/cate控制器名'));//控制器名
     $form->select('fid','父级栏目')->options(Cate控制器名::selectOptions());//控制器名
     $form->text('name','栏目名称')->rules('required');//其他form根据情况自行修改
     $form->text('sort','排序')->rules('required');
     $form->text('jump_to','跳转')->rules('required');;
     $form->hidden('_token')->default(csrf_token());
 
     $column->append((new Box(trans('admin.new'), $form))->style('success'));
    });
   });
  });

3,而且要在此控制器中添加如下方法:

/**
 * Make a treeView()
 *
 * @return tree
 */
protected function treeView()
{
 return Cate控制器名::tree(function (Tree $tree) {
  $tree->disableCreate();
  return $tree;
 });
}

4,在相关的model中添加如下方法和引用类:

//引用这两个类
use Encore\Admin\Traits\AdminBuilder;
use Encore\Admin\Traits\ModelTree;
//并且添加这个方法
 
 use ModelTree, AdminBuilder;
 //字段自行修改
 protected $fillable = ['name','sort','fid','jump_to'];
 
 public function __construct(array $attributes = [])
 {
  parent::__construct($attributes);
 
  $this->setParentColumn('fid');
  $this->setOrderColumn('sort');
  $this->setTitleColumn('name');
 }

以上这篇laravel-admin自动生成模块,及相关基础配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP制作静态网站的模板框架
Oct 09 PHP
php 正则匹配函数体
Aug 25 PHP
服务器web工具 php环境下
Dec 29 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP临时文件的安全性分析
Jul 04 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
PHP计算近1年的所有月份
Mar 13 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 #PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 #PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 #PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 #PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 #PHP
PHP7 安装event扩展的实现方法
Oct 08 #PHP
thinkphp5+layui实现的分页样式示例
Oct 08 #PHP
You might like
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
JS处理一些简单计算题
2018/02/24 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
Python中对列表排序实例
2015/01/04 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python实现飞机大战项目
2020/03/11 Python
python实现四人制扑克牌游戏
2020/04/22 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
公务员职务工作的自我评价
2013/11/01 职场文书
资料员的岗位职责
2013/11/20 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
新入职员工工作总结
2015/10/15 职场文书