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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
PHP 面向对象详解
Sep 13 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
PHP调用接口API封装的例子
Oct 11 PHP
laravel 实现用户登录注销并限制功能
Oct 24 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实现小型站点广告管理
2006/10/09 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
js实现日期级联效果
2014/01/23 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
Python实现简单猜数字游戏
2021/02/03 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
竞选部门副经理的自荐书范文
2014/02/11 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
公务员政审材料
2014/12/23 职场文书
实习班主任自我评价
2015/03/11 职场文书
通知范文怎么写
2015/04/16 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书