官网:https://github.com/laravel-admin-extensions/china-distpicker
//如果要使用省市区名字,记住把china-distpicker/china_area.sql文件下载然后导入到你自己的数据库
截图:
安装
composer require laravel-admin-ext/china-distpicker
然后发布
php artisan vendor:publish --tag=laravel-admin-china-distpicker
配置
在config/admin.php文件的extensions配置部分,加上属于这个扩展的配置
'extensions' => [
'china-distpicker' => [
// 如果要关掉这个扩展,设置为false
'enable' => true,
]
]
使用
在数据库表中有三个字段province, city, district, 在form表单中使用它:
默认存入数据库的是省市区的行政代码,而不是省市区的名字,Distpicker所使用的地域编码是基于国家统计局发布的数据, 数据字典为china_area.sql文件.
$form->distpicker([
'province' => '省',
'city' => '市',
'district' => '区'
]);
Grid 列表展示需要转换为省市区名字,代码如下:
//省名
$grid->column('province', __('Province'))
->display(function($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
//市名
$grid->column('city', __('City'))
->display(function($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
//区名
$grid->column('district', __('District'))
->display(function($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
Detail 详情展示,代码如下:
$show->field('province', __('Province'))
->unescape()->as(function ($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
$show->field('city', __('City'))
->unescape()->as(function ($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
$show->field('district', __('District'))
->unescape()->as(function ($code) {
$name = DB::table('china_area')->where('code', $code)->value('name');
return $name;
});
后面遇见问题再记录------------------------------------