pictures是什么意思

更新时间:2022-11-26 08:15:23 阅读: 评论:0


2022年11月26日发(作者:报怨)

laravel-admin多图⽚上传以及多数据存储问题

多图上传效果

多数据存储

先说多图上传实现

官⽅提供了多图上传组件

$form->multipleImage($column[,$label]);

//本例中字段是imgurl,所以添加如下代码

$form->multipleImage('imgurl',__('商品图⽚'));

⽂档⾥还说明了,只是添加⼀个multipleimage⽅法是不⾏的,还需要再对应的模板⾥定义存储格式,本例是Good模板中添加

publicfunctiontPicturesAttribute($pictures)

{

if(is_array($pictures)){

$this->attributes['pictures']=json_encode($pictures);

}

}

publicfunctiongetPicturesAttribute($pictures)

{

returnjson_decode($pictures,true);

}

注意,如果是添加上⾯的代码,是会报错的!⽂档中没有说明:⽅法名必须要与字段对应起来!

意思就是,这⾥的tPicturesAttribute()要修改成tImgurlAttribute(),⾥⾯的['pictures']也同步修改为['imgurl']

完成上述修改后,才能正常上传

同理,批量添加数据,也需要做类似处理

⾸先这⾥⽤到的是laravel-admin的FromJSON组件这⾥的字段名称是size在model⾥也要注意修改官⽅⽂档中默认的⽅法名

$form->table('size',function($table){

$table->text('sizes',__('规格⼤⼩'));

$table->text('colors',__('颜⾊分类'));

$table->text('sales',__('价格'));

});

官⽅默认是getColumnNameAttribute()这⾥需要修改为这⾥的getSizeAttribute()

publicfunctiongetSizeAttribute($value)

{

returnarray_values(json_decode($value,true)?:[]);

}

publicfunctiontSizeAttribute($value)

{

$this->attributes['size']=json_encode(array_values($value));

}

最后,在“显⽰”页⾯中还是会报错

官⽅⽂档⾥没有看到处理办法,这⾥就⾃⼰做了下处理,将数组拆分成字符串后显⽰,如下:

$show->field('size',__('Size'))->as(function(){

//如果size内容是数组则进⾏处理

if(is_array($this->size)){

$str='';

//遍历数组

foreach($this->sizeas$v){

//如果内部仍是数组(当前是⼆维数据),则拆分成字符串并追加到str中

if(is_array($v)){

$str.=implode('-',$v).',';

}el{//否则直接追加到str中

$str.=$v;

}

}

return$str;

}

});

本文发布于:2022-11-26 08:15:23,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/23905.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图