У меня есть следующая настройка:
На маршрутах у меня есть:
Route :: get ('articles', 'ArticlesController @ index');
Метод индекса в контроллере просто:
public function index() { $articles = Article::all(); return View('articles.index', compact('articles')); }
и в перспективе:
@extends('../app') @section('content') <h1>Articles</h1> <p> @foreach($articles as $article) <article> <h2><a href="{{action('ArticlesController@show', [$article->id])}}">{{$article->title}}</a></h2> <p>{{ $article->body }}</p> </article> @endforeach </p> @stop
Я попытался заменить:
$articles = Article::all();
с
$article = Article::latest()->get();
так что я могу фактически показать статьи в первую очередь. Я получил ошибку:
FatalErrorException in Str.php line 322: Maximum execution time of 30 seconds exceeded
и стек вызовов:
in Str.php line 322 at FatalErrorException->__construct() in HandleExceptions.php line 131 at HandleExceptions->fatalExceptionFromError() in HandleExceptions.php line 116 at HandleExceptions->handleShutdown() in HandleExceptions.php line 0 at Str::snake() in helpers.php line 561 at snake_case() in ControllerInspector.php line 105 at ControllerInspector->getVerb() in ControllerInspector.php line 78 at ControllerInspector->getMethodData() in ControllerInspector.php line 39 at ControllerInspector->getRoutable() in Router.php line 251 at Router->controller() in Router.php line 226 at Router->controllers() in Facade.php line 210 at Facade::__callStatic() in routes.php line 21 at Route::controllers() in routes.php line 21 in RouteServiceProvider.php line 40
… и т.д
Я восстановил метод контроллера, каким он был, но ошибка сохраняется.
Не могли бы вы рассказать мне, как я могу решить эту проблему?
Максимальное время выполнения 30 секунд превысило ошибку, не связанную с Laravel, а скорее вашу настройку PHP.
Вот как вы можете это исправить. Значение, которое вам нужно изменить, – max_execution_time
.
;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
Вы можете изменить max_execution_time
до 300
секунд, как max_execution_time = 300
Вы можете найти путь к файлу конфигурации PHP в выводе функции phpinfo
в разделе « Loaded Configuration File
».
это чистая настройка PHP. Альтернативой является увеличение времени выполнения только для определенных сценариев php, вставив поверх этого файла php следующее:
ini_set('max_execution_time', 180); //3 minutes
Иногда вам просто нужно оптимизировать ваш код или запрос. Настройка max_execution_time не является решением.
Код не должен запускаться более 30 секунд.
Если вы используете PHP7, я бы предложил вам изменить значение по умолчанию в public / .htaccess
<IfModule php7_module> ... php_value max_execution_time 300 ... </IfModule>
Вам нужно просто нажать CTRL + F5 . После этого он будет работать.