laravel-admin-extensions / china-distpicker Goto Github PK
View Code? Open in Web Editor NEW**省/市/区(县)三级级联选择器
License: MIT License
**省/市/区(县)三级级联选择器
License: MIT License
现在设置是可以设置的,但是无法在 filter 里加过滤的级联,而且如何展示设置好的数据?
看样子是把 code 存在了字段里,难道说展示的时候需要自己建表去库里查询吗?
在 $form 里,因为是一对一的关系,所以我写成:
$form->distpicker( [ 'pdetails.country' => '省' , 'pdetails.province' => '市' , 'pdetails.city' => '区' ] )->autoselect( 2 );
如果我这样写,就获取不到值。这三个字段是 一对一的副表 pdetails 表里的字段,我如何使用?
但是我写成:
$form->distpicker( [ 'country' => '省' , 'province' => '市' , 'city' => '区' ] )->autoselect( 2 );
就可以获取到值。但是保存的时候,提示我字段不存在,因为这三个字段不存在在主表里。
如何解决?
因后端查询时需要得知具体的省市区名称,如果储存地区编号则需要单独维护一张表去获取地区名称,插件是否可以增加一个 data-value-type
配置选项来改变前台传入的省市区数据类型。
如果只想选省份或者只想使用省份和城市的话就会报错。。
create和edit里面都可以,但grid和show里面如何显示省市区数据?
另外,filter里面能设置默认值么?
深圳市没有光明新区和大鹏新区
下拉组件在 form 提交时默认是将地址 code 传给后端,如果需要保存地址 data-text,可以试试在构造 form 的时候添加三个隐藏域,并用 js 绑定地址下拉框选择事件,将选中的地址 text 传给隐藏域:
...
$form->hidden('province');
$form->hidden('city');
$form->hidden('district');
...
\Admin::script(
"$('select[name=\"address[province_code]\"]').change(function() {
$('input[name=\"address[province]\"]').val($('select[name=\"address[province_code]\"] option:selected').text());
});
$('select[name=\"address[city_code]\"]').change(function() {
$('input[name=\"address[city]\"]').val($('select[name=\"address[city_code]\"] option:selected').text());
});
$('select[name=\"address[district_code]\"]').change(function() {
$('input[name=\"address[district]\"]').val($('select[name=\"address[district_code]\"] option:selected').text());
});
"
);
怎么设置默认选中的值,编辑的时候需要显示旧数据啊
现在设置是可以设置的,但是无法在 filter 里加过滤的级联,而且如何展示设置好的数据?
看样子是把 code 存在了字段里,难道说展示的时候需要自己建表去库里查询吗?
请问可以实现省市区街道的四级联动吗?
数据库:
PostgreSQL 9.6.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-bit
char
会输出空字符串, 就像如下
$("").distpicker({
province: '450000 ', // 出现空字符
city: '450100',
district: '450107'
});
去除空字符即可正常
发现这个扩展没有广东 中山的县区
我替换了扩展的静态文件
原博客已失效: https://blog.lblog.club/2020/03/10/china-distpicker/#laravel-admin-china-distpicker
新链接:http://bughello.cn/2020/03/10/china-distpicker/#laravel-admin-china-distpicker
数据我已给出,希望能更新 ,我以后可以不用手动替换...
发现地区编号有重复数据,不能作为唯一标识来存储在数据表上。可否增加一个ID选项,保存数据库的时候存入ID,读取出来的时候也根据ID设置默认值?
Encore\Admin\Form\Field:中的getPlaceHolder
定义
public function getPlaceholder(): string
{
return $this->placeholder ?: trans('admin.input').' '.$this->label;
}
要求返回值是string
Encore\ChinaDistpicker\Distpicker
中定义的
protected $placeholder= [];
为数组,使用时报错。
PHP version PHP/7.4.7
Laravel version 6.18.38
Laravel Admin Version 1.8.4
ViewException In Distpicker.php line 104 :
Call to a member function with() on string (View: /www/localhost/blog/vendor/encore/laravel-admin/resources/views/form.blade.php)
#0 /www/localhost/blog/vendor/encore/laravel-admin/src/../resources/views/form.blade.php(31): Encore\ChinaDistpicker\Distpicker->render()
#1 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/www/localhost/...')
#2 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/www/localhost/...', Array)
#3 /www/localhost/blog/vendor/facade/ignition/src/Views/Engines/CompilerEngine.php(36): Illuminate\View\Engines\CompilerEngine->get('/www/localhost/...', Array)
#4 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(143): Facade\Ignition\Views\Engines\CompilerEngine->get('/www/localhost/...', Array)
#5 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(126): Illuminate\View\View->getContents()
#6 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents()
#7 /www/localhost/blog/vendor/encore/laravel-admin/src/Form/Builder.php(673): Illuminate\View\View->render()
#8 /www/localhost/blog/vendor/encore/laravel-admin/src/Form.php(1402): Encore\Admin\Form\Builder->render()
#9 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Column.php(100): Encore\Admin\Form->render()
#10 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Row.php(80): Encore\Admin\Layout\Column->build()
#11 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Content.php(215): Encore\Admin\Layout\Row->build()
#12 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Content.php(308): Encore\Admin\Layout\Content->build()
#13 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Http/Response.php(42): Encore\Admin\Layout\Content->render()
#14 /www/localhost/blog/vendor/symfony/http-foundation/Response.php(205): Illuminate\Http\Response->setContent(Object(Encore\Admin\Layout\Content))
#15 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(749): Symfony\Component\HttpFoundation\Response->__construct(Object(Encore\Admin\Layout\Content), 200, Array)
#16 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Router::toResponse(Object(Illuminate\Http\Request), Object(Encore\Admin\Layout\Content))
#17 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Router->prepareResponse(Object(Illuminate\Http\Request), Object(Encore\Admin\Layout\Content))
#18 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Permission.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#20 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Permission->handle(Object(Illuminate\Http\Request), Object(Closure))
#21 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Bootstrap.php(15): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Bootstrap->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/LogOperation.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\LogOperation->handle(Object(Illuminate\Http\Request), Object(Closure))
#25 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Pjax.php(24): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#26 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Pjax->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Authenticate.php(26): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#31 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#43 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#44 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#45 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#46 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#47 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#48 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#49 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#54 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 /www/localhost/blog/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#58 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#59 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#60 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#61 /www/localhost/blog/public/index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#62 {main}
如题。我想更新数据。默认好像是走的插件里JS写好的数据。而没走数据库。是直接改JS里的数据就可以了么?求大佬指导。
使用dev-master的版本时,报了一个方法找不到
Method Encore\ChinaDistpicker\Distpicker::getValidationMessages does not exis
如题
$form->hasMany('template_rules','收费标准',function (Form\NestedForm $form) { //My codes. });
如上所示,当我进入新增/编辑表单中,点击"新增",第一个能够正常选择:
但是新增第二个失败,无法选择这些地市:
使用的是laravel-admin1.8.17,模型关联正常,关联数据正常显示
//model A //... public function template_rules(){ return $this->hasMany(PostageTemplateRoule::class,'template_id'); } //...
可以支持世界地区联动选择的吗? 或者有什么包可以推荐下?
比如:北京的延庆区
在sql里父级是北京市,id为1;
在js里父级是北京城区,没有id。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.