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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
如何在PHP中进行身份认证
Oct 09 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
php变量作用域的深入解析
Jun 03 PHP
浅析php中三个等号(===)和两个等号(==)的区别
Aug 06 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
ThinkPHP模型详解
2015/07/27 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
javascript的BOM汇总
2015/07/16 Javascript
js面向对象的写法
2016/02/19 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
javaScript语法总结
2016/11/25 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
深入理解javascript中的this
2021/02/08 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
Python列表计数及插入实例
2014/12/17 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
客户服务经理岗位职责
2014/01/29 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
公司奖励通知
2015/04/21 职场文书
催款函范本大全
2015/06/24 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
Redis Stream类型的使用详解
2021/11/11 Redis
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
MySQL分布式恢复进阶
2022/07/23 MySQL