一、在app/目录下创建一个文件夹名字为Helpers(可以随便取),然后再Helpers下面创建functions.php文件,里面代码如下:
<?php /** * 自定义全局函数,控制器和模板都能用 */ if (!function_exists('lang_url')) { /** * 语言包路径 * * @param $path * @param null $lang 指定语言包 * @param null $secure * @return string */ function lang_url($path, $lang = null, $secure = null) { return app('url')->asset('/' . (empty($lang) ? app()->getLocale() : trim($lang)) . '/' . ltrim($path, '/'), $secure); } }
二、在composer.json文件里的autoload里面添加如下所示files……:
"autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" }, "files": [ "app/Helpers/functions.php" ] },三、最后前后端使用全局函数lang_url会报错,应该在项目文件夹下执行命令, composer dump-autoload,
因为 database
文件夹使用 classmap 来做加载的。所以只有在打了 composer dumpautoload 之后 composer 才会更新 autoload_classmap 的内容
最后大功告成!前后端都能使用全局函数lang_url;
在https://blog.youkuaiyun.com/logic_lai/article/details/80348529 laravel实现语言包切换的时候这个全局函数就能用啦。