在使用laravel-admin开发的过程中,根据官方开发文档Laravel admin | laravel-admin基本都能实现想要的效果,这里补充3个文档上没有描述的细节
Laravel8命令行创建控制器调整
在laravel-admin中可以使用php artisan admin:make UserController --model=App\User
命令创建后台控制器,后面的--model
是绑定的模型,它会根据model对应表的字段,默认构建出所需的grid,form和show三个页面的代码,但是由于laravel8模型额目录不再是App
,而是App\Models
,所以命令后面的模型路径也要修改为php artisan admin:make UserController --model=App\Models\User
,否则会报错The "--model" option does not exist.
全局model时间格式设置
方法一:使用默认时间格式
如果想使用默认的2020-03-04 16:11:00
格式,在你的模型里面引入Encore\Admin\Traits\DefaultDatetimeFormat
,然后use DefaultDatetimeFormat;
use Encore\Admin\Traits\DefaultDatetimeFormat;
class User extends Model
{
use DefaultDatetimeFormat;
}
方法二:自定义时间格式
- 1.在App目录下新建目录
Traits
,然后新建文件SerializeDate.php
,文件内容如下
<?php
namespace App\Traits;
use DateTimeInterface;
trait SerializeDate
{
/**
* 为 array / JSON 序列化准备日期格式
*
* @param \DateTimeInterface $date
* @return string
*/
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
}
-
2.在model中
use SerializeDate
即可<?php namespace App\Models; use app\Traits\SerializeDate; class Users extends Model { use HasFactory,SerializeDate; // }
全局语言本地化
laravel-admin自带的语言本地化只有部分后台按钮和菜单的翻译,表格字段和编辑