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+MYSQL 出现乱码的解决方法
Aug 08 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
php中strtotime函数用法详解
Nov 15 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
实现php删除链表中重复的结点
Sep 27 PHP
PHP合并两个或多个数组的方法
Jan 20 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 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
linux下 C语言对 php 扩展
2008/12/14 PHP
PHPLog php 程序调试追踪工具
2009/09/09 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
pandas string转dataframe的方法
2018/04/11 Python
python机器学习之神经网络实现
2018/10/13 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Python控制Firefox方法总结
2019/06/03 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Python列表元素常见操作简单示例
2019/10/25 Python
利用Python计算KS的实例详解
2020/03/03 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
文化宣传方案
2014/03/13 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
原生JS实现分页
2022/04/19 Javascript