overtrue/laravel-ueditor composer 安装包不支持laravel 6,ueditor上传图片会报错的解决办法

overtrue/laravel-ueditor composer 安装包不支持laravel 6,ueditor上传图片会报错的解决办法

overtrue/laravel-ueditor composer 安装包不支持laravel 6,ueditor上传图片会报错的解决办法

Github地址:https://github.com/overtrue/laravel-ueditor

overtrue/laravel-ueditor 安装包可以在laravel项目中快速引入ueditor百度编辑器,并且已经做好图片上传的控制,可以方便的将图片上传地址设置为本地路径或者七牛等。

但是该composer安装包目前只支持到laravel 5 版本,在laravel 6中会因为有一些方法在laravel 6中被舍弃掉而报错,例如会提示array_get()方法和str_finish()方法未定义。

解决该问题可以在自己laravel项目中的helpers中的文件中加入全局通用方法。

首先在app目录下创建Helpers文件夹,创建common.php文件

加入如下代码

<?php

if (! function_exists('str_contains')) {
    /**
     * Determine if a given string contains a given substring.
     *
     * @param  string  $haystack
     * @param  string|array  $needles
     * @return bool
     */
    function str_contains($haystack, $needles)
    {
        return Str::contains($haystack, $needles);
    }
}

if (! function_exists('str_finish')) {
    /**
     * Cap a string with a single instance of a given value.
     *
     * @param  string  $value
     * @param  string  $cap
     * @return string
     */
    function str_finish($value, $cap)
    {
        return Str::finish($value, $cap);
    }
}

然后在项目的composer.json文件中加入如下代码

"autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "files": [
        "app/Helpers/common.php"
    ]
},

image.png

最后执行 composer dump-autoload  命令即可生效。