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 相关文章推荐
JS实现php的伪分页
May 25 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
CI框架集成Smarty的方法分析
May 17 PHP
linux下php上传文件注意事项
Jun 11 PHP
php 数据结构之链表队列
Oct 17 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 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
PHP的ASP防火墙
2006/10/09 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
浅谈PHP封装CURL
2019/03/06 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
Python3.2中的字符串函数学习总结
2015/04/23 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
python实现数据图表
2017/07/29 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
小学生秋游活动方案
2014/02/23 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
房产遗嘱范本
2015/08/06 职场文书
一年级语文教学随笔
2015/08/14 职场文书