安装命令
1#安装laravel项目
通过composer创建项目
composer create-project --prefer-dist laravel/laravel blog
通过浏览器访问 http:://127.0.0.1:端口号
首先确保安装好了laravel ,并且数据库连接设置正确。
composer require encore/laravel-admin:1.*
然后运行下面的命令来发布资源:
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
在该命令会生成配置文件config/admin.php ,可以在里面修改安装的地址、数据库连接、以及表名,建议都是用默认配置不修改。
然后运行下面的命令完成安装:
php artisan admin:install
Notice
运行这个命令的时候,如果遇到了下面的错误:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email))
参考这个issue来解决 https://github.com/z-song/laravel-admin/issues/1541
启动服务后,在浏览器打开?http://localhost/admin/ ?,使用用户名?admin ?和密码?admin 登录.
- 数据表结构和模型
- 用
Laravel 自带的users 表举例,表结构为: -
users
id - integer
name - string
email - string
password - string
created_at - timestamp
updated_at - timestamp - 创建控制器
- 使用下面的命令来创建一个
App\User 模型对应的控制器 -
php artisan admin:make UserController --model=App\User 上面的命令会创建控制器文件app/Admin/Controllers/UserController.php . - 添加路由
- 在路由配置文件
app/Admin/routes.php 里添加一行: -
$router->resource('users', UserController::class);
- 编写CURD页面逻辑
- 通过
admin:make 命令创建的控制器app/Admin/Controllers/UserController.php 如下:
$title 属性用来设置这个CURD模块的标题,可以将它修改为任何其它的字符串。
grid 方法对应数据的列表 页,参考model-grid 文档来实现列表页的相关功能逻辑。
detail 方法对应数据的详情 页,在列表页操作列的详情显示 按钮点击进入,参考model-show 文档来实现详情页的相关功能逻辑。
form 方法对应数据的创建 和编辑 页,参考model-form 文档来实现数据创建和编辑页的相关功能逻辑。
-
<?php
namespace App\Admin\Controllers;
use App\Models\User;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class UserController extends AdminController
{
protected $title = 'Users';
protected function grid()
{
$grid = new Grid(new User());
$grid->column('id', __('Id'));
$grid->column('name', __('Name'));
$grid->column('email', __('Email'));
$grid->column('password', __('Password'));
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));
return $grid;
}
protected function detail($id)
{
$show = new Show(User::findOrFail($id));
$show->field('id', __('Id'));
$show->field('name', __('Name'));
$show->field('email', __('Email'));
$show->field('password', __('Password'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
protected function form()
{
$form = new Form(new User());
$form->textarea('name', __('Name'));
$form->textarea('email', __('Email'));
$form->textarea('password', __('Password'));
return $form;
}
}
|