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

PA-*_*-GW 6 php ini laravel laravel-blade

我正在 Laravel 6.2 中工作,并且有一个基本数据库,其中包含一个questions表,该表可返回 id、slug、标题、正文、时间戳。我设置了一条路线,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
Run Code Online (Sandbox Code Playgroud)

603行:

return (string) iconv_substr($s, $start, $length, $encoding);
Run Code Online (Sandbox Code Playgroud)

网页.php

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

问题控制器

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

        return view('questions.index', compact('questions'));
    }
}
Run Code Online (Sandbox Code Playgroud)

索引.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
Run Code Online (Sandbox Code Playgroud)

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

我使用的是 Ubuntu 19.04、Laravel 6.2、php7.3(FPM/FastCGI)

谢谢。

小智 8

为时已晚,但有人遇到了这个问题。
这个问题来自 php mb-string 不能很好地工作。
所以重新安装 php mb-string 可以修复这个错误。


PA-*_*-GW 3

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