按照这个主题Use a custom function everywhere in the website,我需要一些帮助才能完成已经开始的工作。
所以我在app文件夹中创建了一个文件夹:Customs 然后我创建了一个helpers.php文件,其中包含以下代码:
<?php
use Illuminate\Support\Str;
if (! function_exists('str_slug')) {
/**
* Generate a URL friendly "slug" from a given string.
*
* @param string $title
* @param string $separator
* @return string
*/
function my_slug($title, $separator = '-')
{
$title = str_replace('\'','_',$title);
return Str::slug($title, $separator);
}
}
我读到我现在必须更新我的composer.json,特别是基本上自动加载部分:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
我不明白我现在该做什么... psr-4已经说整个app文件夹是自动加载的,不是吗?
我也尝试将完整路径放到helpers.php,但它也没有用。
我做错了什么?
答案 0 :(得分:4)
你的自动加载应该有类似的东西:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/helpers.php"
]
},
其中files
是您的自定义文件。另外,如在网站的任何地方使用自定义功能问题中所述,我建议您使用特征,例如: trait StringSluggify
。它保持OOP方式。
答案 1 :(得分:1)
app/
的{{1}}内创建一个文件夹。 Helpers
内部创建您的自定义类
app/Helpers
运行namespace App\Helpers;
class FooHelper{
public static function bar(){
return 'bar';
}
}
更新自动加载。
现在,您可以使用以下辅助函数:
composer dump-autoload
如果您的计划附加外观,请在$bar = \App\Helper\FooHelper::bar();
中编辑外观数组,如下所示:
config/app.php
现在你可以调用你的函数:
'Foo' => \App\Helpers\FooHelper::class
答案 2 :(得分:0)
在您的视图{{my_slug($ collection-&gt; value)}}或您的控制器中使用命名空间App \ customs \ my_slug($ value)或将use \ App \ customs添加到您的顶部controller然后my_slug($ value)