最大执行超时 30 Seconds/Mbstring 错误 Laravel 6*

Max Execution Timeout 30 Seconds/Mbstring Error Laravel 6*

我在 Laravel 6.2 工作,有一个基本数据库,其中包含一个 questions table,可以返回一个 id、slug、标题、body、时间戳。我在 questions 设置了一条路由,该路由调用查询数据库的控制器并将问题传递给视图 index.blade.php,在这里我显示分页问题。问题是我可以很好地显示 $questions->title,但是当我尝试显示 $question->body 时,我不断收到特定的超时错误。我已经将 .ini 中的 max_execution 从 30 更改为 300,但无济于事。

具体错误

PHP Fatal error:  Maximum execution time of 30 seconds exceeded in /home/projects/inquiry-app/vendor/symfony/polyfill-mbstring/Mbstring.php on line 603

第 603 行:

return (string) iconv_substr($s, $start, $length, $encoding);

Web.php

Route::get('/', function () {
    return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('questions', 'QuestionsController');

问题控制器

class QuestionsController extends Controller
{
    public function index()
    {
        $questions = Question::latest()->paginate(2);

        return view('questions.index', compact('questions'));
    }
}

index.blade.php

 @foreach($questions as $question)
                            <div class="media">
                                <div class="media-body">
                                    <h3 class="mt-0">{{$question->title}}</h3>
{{--                                    <p>{{Str::limit($question->body, 10)}}</p>--}}
                                </div>
                            </div>
                            <hr>
                       @endforeach

知道为什么我会收到此错误吗?如果 $question->body 行被注释掉,页面将加载。

我在 Ubuntu 19.04,Laravel 6.2,php7.3(FPM/FastCGI)

谢谢。

回答我自己的问题。当我从 $question->body 行中删除 {{Str::limit}} 时,它工作得很好。我不确定为什么这会导致问题,但通过删除那部分代码,它现在似乎可以工作了。

来晚了,但有人遇到了这个问题。
这个问题来自 php mb-string not work well.
所以重新安装 php mb-string 可以修复这个错误。

编辑:来不及回答 OP 的问题。

如果您使用的是 Apache,请检查所服务的 PHP 版本。

php-cli 使用的是 php8.0 但是,Apache 使用的是 php7.4。这导致 Symfony 的 polyfill-mbstring 库超时,因为该模块未启用。