我有以下设置:
在我有的路线:
Route :: get('articles','ArticlesController @ index');
控制器中的索引方法很简单:
public function index()
{
$articles = Article::all();
return View('articles.index', compact('articles'));
}
Run Code Online (Sandbox Code Playgroud)
并在视图中:
@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
Run Code Online (Sandbox Code Playgroud)
我试图取代:
$articles = Article::all();
Run Code Online (Sandbox Code Playgroud)
同
$article = Article::latest()->get();
Run Code Online (Sandbox Code Playgroud)
这样我才能真正展示最新的文章.我收到了错误:
FatalErrorException in Str.php line 322:
Maximum execution time of 30 seconds exceeded
Run Code Online (Sandbox Code Playgroud)
并且调用堆栈是:
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
Run Code Online (Sandbox Code Playgroud)
......等
我已将控制器方法恢复到原来的状态,但错误仍然存在.
你能告诉我怎样才能解决这个问题吗?
Nom*_*man 58
超出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)
Run Code Online (Sandbox Code Playgroud)
你可以max_execution_time改为300秒max_execution_time = 300
您可以phpinfo在该Loaded Configuration File部分的函数输出中找到PHP配置文件的路径.
Gri*_* P. 39
这是一个纯粹的PHP设置.另一种方法是通过在php文件的顶部插入以下内容,仅增加特定php脚本的执行时间限制:
ini_set('max_execution_time', 180); //3 minutes
Run Code Online (Sandbox Code Playgroud)
Uma*_*riq 16
在Laravel:
在查询之上添加set_time_limit(0)行.
set_time_limit(0);
$users = App\User::all();
Run Code Online (Sandbox Code Playgroud)
它可以帮助您处理不同的大型查询,但您应该需要改进查询优化.
在 __construct 方法中设置时间限制,或者您也可以在索引控制器中设置您想要大时间限制的位置。
public function __construct()
{
set_time_limit(8000000);
}
Run Code Online (Sandbox Code Playgroud)
有时您只需要优化代码或查询,设置更多的max_execution_time并不是解决方案。
代码的运行时间不得超过30秒。
| 归档时间: |
|
| 查看次数: |
106151 次 |
| 最近记录: |