laravel-admin实战做个简单的客户管理——快速生成客户列表
- 学习用laravel-admin快速生成列表
- 学习laravel的路由中资源路由
客户列表因为没有其他表的关联项,所以制作起来比较简单。
仔细查看了一下客户表,发现缺少了一个locked字段,冻结状态。
使用数据迁移,给表增加字段。
使用如下命令:【命名格式 添加-字段名-into-表名】
php artisan make:migration add_locked_into_front_customers
在database下打开文件,修改内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public function up() { // locked 字段放在 login_cnt 字段后面用after()方法 Schema::table('front_customers',function (Blueprint $table) { $table->tinyInteger('locked')->after('login_cnt')->default(0)->comment('是否冻结 默认0 未冻结'); }); } public function down() { //回滚迁移时候使用 Schema::table('front_customers', function (Blueprint $table) { $table->dropColumn('locked'); }); } |
然后执行 php artisan migrate
laravle-admin 建立客户列表【基本用法】
1、建立客户表模型
1 |
php artisan make:model App\Models\FrontCustomer |
2、修改模型文件中一些参数,设定一些字段不能在creat时候修改。[文件:App\Models\FrontCustomer]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Encore\Admin\Traits\DefaultDatetimeFormat; class FrontCustomer extends Model { //格式化日期显示 use DefaultDatetimeFormat; //指定表名 因为表名带s protected $table = 'front_customers'; //因为所有的 Eloquent 模型都默认不可进行批量赋值。以下是定义模型上的哪些字段是可以被批量赋值的。 //可以这样理解$fillable 是白名单 $guarded 是黑名单 //如果你想让所有属性都可以批量赋值, 你可以将 $guarded 定义成一个空数组: //需要注意的是,fillable 与 guarded 只限制了 create 方法,而不会限制 save。 protected $fillable = [ ]; protected $guarded = [ 'locked', 'remember_token' ]; /** * 强制转换的属性 支持转换的数据类型有:integer,real,float,double,decimal:,string,boolean, * object,array,collection,date,datetime 和 timestamp。 * 当需要转换为 decimal 类型时,你需要定义小数位的个数,如:(decimal:2)。 * 示例: * 'created_at' => 'datetime:Y-m-d H:i:s', */ protected $casts = [ 'locked' => 'boolean', ]; |
3、用laravel-admin生成控制器【控制器命名可以用模型名字+Controller –model参数指定模型的文件名】
1 |
php artisan admin:make FrontCustomerController --model=App\Models\FrontCustomer |
4、添加路由
1 |
$router->resource('front-customer',FrontCustomerController::class); |
5、后台添加菜单
打开了界面,点击新增和修改,发现有一些字段不需要在界面中,对代码进行简单的修饰。【本页只是展示,具体代码讲述在第3】
代码位置:App\Admin\controllers\FrontCustomerController [由laravel-admin的命令行自动生成]
1、页面的标题
2、数据列表
3、单条数据详情
4、新增和修改的表单
5、前端显示的结果
快速生成列表的一些知识点如下:
1、将列表中的字段显示为汉字。在\resources\lang目录下建立json文件 zh-CN.json,放置语言文件。
2、学会form组件的基本用法【上面用了select组件】
经过初步处理的列表,虽然能够基本达到我们的要求,但是我们还要精益求精。具体是:
A、列表页空字段或者值为0的字段没有显示。
B、冻结字段状态想直接在列表页上可以更改。
C、编辑页用户类型没有显示数据库里的值。
D、用户密码修改的时候,想增加一个comfirm验证字段。
E、新增或者修改的时候,进行字段约束。
F、美化一下增加和编辑的表单。
H、详情页美化,最好显示客户的关联站点和关键词信息。
为了美化表单页面,我计划安装一个判断是否手机的组件。如果不是手机,则表单限定在3分之1的宽度。
安装判断是否手机端的组件,如果是PC端,就对表单进行宽度设计。(解决F问题)
1 |
composer require jenssegers/agent |
噢!评论已关闭。