关于Laravel 5.8.*(laravel-admin 1.x)的一些问题以及解决办法汇总
时区问题(默认时区UTC-协调世界时)
**解决办法:**
把config/app.php中的'timezone' => 'UTC'
修改为'timezone' => 'PRC'
或者'timezone' => 'Asia/Shanghai'
即可
设置中文语言包
- 安装依赖(其它laravel版本请查看文档下载对应版本)
composer require laravel-lang/lang:~4.0
- 复制vendor/laravel-lang/lang/src/zh-CN到resources/lang/zh-CN
- 把config/app.php中的
'locale' => 'en'
修改为'locale' => 'zh-CN'
- 如果你要用
faker
去填充测试数据,请修改'locale' => 'en'
修改为'locale' => 'zh_CN'
(vendor/fzaninotto/faker/src/Faker/Provider/zh_CN)
出现SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email))
问题
在appProvidersAppServiceProvider.php添加默认值
<?php
namespace AppProviders;
use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesSchema; //add fixed sql
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191); //add fixed sql
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
laravel-admin 表单 $form->image('pic', __('Pic'));
上传图片路径问题。
在config/admin.php
上传配置项中
'upload' => [
//配置项 config/filesystem.php
'disk' => 'admin',
//上传图片和文件的目录设置
'directory' => [
'image' => 'images',
'file' => 'files',
],
],
可以看出来配置项在config/filesystem.php
中
在config/filesystems.php
中追加如下
'disks' => [
...
'admin' => [
'driver' => 'local',
'root' => storage_path('app/public'),//上传路径(图片上传到/storage/app/public/images;文件上传到/storage/app/public/files)
'url' => env('APP_URL').'/storage',//访问路径(图片访问路径/public/storage/images;文件访问路径/public/storage/file)
'visibility' => 'public',
],
...
],
我们需要执行一下软连接php artisan storage:link
, 这个命令会帮我们把/storage/app/public/*
映射到/public/storage/*
,
这样我们就可以直接通过根目录下的storage/*
访问文件。
在laravel-admin 中使用$form->editor('content',__('Content'));
报错(laravel-admin Field type [editor] does not exist.
)问题。
首先把app/admin
中的bootstrap.php
里边的EncoreAdminForm::forget(['map', 'editor']);
注释掉,意思就是使用这个组件。
如果依然报错,则可能需要安装laravel-admin-ext/wang-editor
,github地址
安装
// laravel-admin 1.x
composer require "laravel-admin-ext/wang-editor:1.*"
// laravel-admin 2.x
composer require laravel-admin-ext/wang-editor
然后
php artisan vendor:publish --tag=laravel-admin-wangEditor
配置
在config/admin.php文件的extensions,加上属于这个扩展的一些配置
'extensions' => [
'wang-editor' => [
// 如果要关掉这个扩展,设置为false
'enable' => true,
// 编辑器的配置
'config' => [
]
]
]
编辑器的配置可以到wangEditor文档找到,比如配置上传图片的地址上传图片
'config' => [
// `/upload`接口用来上传文件,上传逻辑要自己实现,可参考下面的`上传图片`
'uploadImgServer' => '/upload'
]
使用
在form表单中使用它:
$form->editor('content');
上传图片
图片上传默认使用base64格式化后与文本内容一起存入数据库,如果要上传图片到本地接口,那么下面是这个接口对应的action代码示例:
use IlluminateHttpRequest;
use IlluminateSupportFacadesStorage;
public function upload(Request $request)
{
$urls = [];
foreach ($request->file() as $file) {
$urls[] = Storage::url($file->store('images'));
}
return [
"errno" => 0,
"data" => $urls,
];
}