Je travaille dans Laravel 6.2 et j'ai une base de données de base qui héberge une table questions qui ramène un identifiant, un slug, un titre, un corps, des horodatages. J'ai une route configurée à questions qui appelle un contrôleur qui interroge la base de données et passe les questions à une vue index.blade.php et ici j'affiche les questions avec pagination. Le problème est que je peux très bien afficher le $questions->title, mais lorsque j'essaie d'afficher le $question->body, j'obtiens toujours une erreur de délai d'attente spécifique. J'ai déjà changé le max_execution dans mon .ini de 30 à 300 et en vain.

Erreur spécifique

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

Ligne 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');

QuestionsContrôleur

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

Des idées pourquoi j'obtiendrais cette erreur? La page se charge si la ligne $question->body est mise en commentaire.

Je suis sur Ubuntu 19.04, Laravel 6.2, php7.3(FPM/FastCGI)

Je vous remercie.

1
PA-GW 22 janv. 2020 à 05:46

3 réponses

Meilleure réponse

Réponse à ma propre question. Lorsque je supprime le {{Str::limit}} de la ligne $question->body, cela fonctionne parfaitement. Je ne sais pas pourquoi cela pose un problème, mais en supprimant cette partie du code, cela semble fonctionner maintenant.

1
PA-GW 22 janv. 2020 à 02:52

Trop tard, mais quelqu'un a eu ce problème.
Ce problème vient de php mb-string ne fonctionne pas bien.
Donc, réinstaller php mb-string peut corriger cette erreur.

0
AkiHizashi 19 juil. 2020 à 00:59

Edit : Trop tard pour répondre à la question d'OP.

Si vous utilisez Apache, vérifiez quelle version de PHP est servie.

Php-cli utilisé était php8.0 cependant, Apache utilisait php7.4. Cela a entraîné l'expiration du délai de la bibliothèque polyfill-mbstring de Symfony car le module n'était pas activé.

1
GenericClubSoda 2 févr. 2021 à 22:32