场景:今儿在线上测试环境开发的代码部署git,拉到本地,解决一系列环境问题以后,访问项目发现有几个列表出现了乱码。一通网上搜索,发现介绍的都是一样的。解决不了我的问题。心乱如麻,突然想到我在写程序的时候在字段编写的地方改了一点东西。于是乎我就解决了。总结了一下乱码解决的所有办法。
1、项目语言配置config/app.php
'locale' => 'zh-CN',
2、老版本的laravel-admin 在\vendor\laravel-admin\src\Grid\Exporters\CsvExporter.php文件中export方法增加一行代码,如果你是新版本就放弃这个
print(chr(0xEF).chr(0xBB).chr(0xBF));
3、在编写程序时出现的疏忽,如果你和我一样时刚开始使用laravel-admin就可能会出现这种问题
protected function grid()
{
$grid = new Grid(new Good());
$grid->column('good_name', __('产品名称'));
$grid->column('品牌')->display(function (){
$arr = Brand::where('id',$this->brand_id)->first();
if ( !$arr || !$arr->brand_name )
{
return '';
}
return $arr->brand_name;
});
$grid->column('分类')->display(function (){
$arr = Category::where('id',$this->cate_id)->first();
if ( !$arr || !$arr->category_name )
{
return '';
}
return $arr->category_name;
});
$grid->column('price', __('售价'));
$grid->column('original', __('原价'));
$grid->column('is_sale', '是否上架')->filter([
'1'=>'是',
'2'=>'否'
])->display(function ($is_sale){
return $is_sale ? '是' : '否';
});
$grid->column('tags', __('标签'));
$grid->column('created_at', __('创建时间'));
return $grid;
}
分析一下问题,column()这个方法第一个参数,我刚开始的时候有的直接改成了字段的中文,后来发现第二个参数该了就行,但是之前的我都没改回来。所以这里就出现了问题,如果在哪里弄的哪里就会出现问题后面也不会有任何改变。这就是乱码的问题。
解决办法:
修改column()内的错误。