Laravel 6.0中出现“Call to undefined function str_slug()”错误

85

我已将laravel 5.8项目升级到6.0。 升级成功,但当我尝试运行项目或安装其他包时,它会在session.php中给出名为“Call to undefined function str_slug()”的错误。我不知道为什么...

调用未定义函数str_slug()


7
str_slug()6.0 中已不可用。它被改为 Str::slug。看起来你的一些 Laravel 代码仍然来自于 5.8 - Cerlin
问题解决了...谢谢 :) - Soft Technoes
1
我有同样的问题,但str_slug来自于Laravel提供的cache.php和session.php文件。我应该如何获取这些文件的最新版本? - mankowitz
当您将项目更新到6.0时,如果这些文件不存在,则会在其位置自动更新或创建。请从终端运行composer update - Soft Technoes
3
我遇到了和mankowitz一样的问题,但是composer update没有更新它们。我去laravel的github获取最新的代码,并手动更新了confg/cache.php和config/session.php文件。 - Jack Wire
6个回答

158

如果您已经查看了升级指南,那么您应该知道:

StringArray辅助函数已从核心框架中移除

因此,如果您仍需要使用这些辅助函数,请安装相应的软件包。

composer require laravel/helpers

并且所有的帮助程序都被移到了这个软件包中


嗨,我有同样的问题。在运行composer require laravel/helpers之后,问题并没有得到解决。我需要做些什么吗? - E.B
这是一个全新安装的 Laravel 6.0 还是升级到了 6.0? - ManojKiran A
这是关于升级到6.0的事情。 - Soft Technoes
我曾经在使用Str_plural时遇到了困难,后来意识到在6*版本中应该使用Str::_plural,但仍然无法正常工作。通过安装laravel/helpers包并清除artisan缓存/配置等...它完美地解决了问题。谢谢。 - CodeConnoisseur

40

laravel 6.0 核心框架中删除了字符串和数组帮助类。

https://laravel.com/docs/6.0/upgrade#helpers

因此,如果您仍需要使用帮助类,请安装该软件包。

composer require laravel/helpers

或者您可以使用Laravel门面

use Illuminate\Support\Str;
$slug = Str::slug('Laravel 5 Framework', '-');

3

我个人在Laravel 6上做以下操作有些困难。在应用控制器中加入use Illuminate\Support\Str;,然后类似这样使用'slug' => Str::slug($request->title)


我对此一无所知,但我已经找到了解决方案。谢谢。 - Soft Technoes
是的,它适用于所有 Laravel 版本。Illuminate\Support\Str::slug($title); - Ashish Patel

2

解决 call to undefined function str_slug() 问题有两个选项。

1. 运行命令 composer require laravel/helpers

或者另一个选项是,当您不想安装包时,下面的解决方案是解决您的问题的简单方法,也是最好的方法。

2. 您可以使用facade类。

use Illuminate\Support\Str;

public function index(Request $request)
{
   $slug = Str::slug($request->name);
}

0

$post = Post::create([ 'slug' => Str::slug($request->title), 开始吧


1
您的答案可以通过提供更多支持性信息来进一步改善。请编辑以添加更多详细信息,例如引用或文档,以便他人可以确认您的答案是否正确。您可以在帮助中心找到有关编写好答案的更多信息。 - Community

-1

composer require laravel/helpers

php artisan optimize:clear

这段内容与编程有关。


目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接