【问题标题】:This request can not be processed via localhost at this time error此请求目前无法通过 localhost 处理错误
【发布时间】:2019-02-03 09:27:09
【问题描述】:

我正在尝试从我的数据库中检索数据并将它们发送到我的视图以在数据表中可视化它们。

当我第一次刷新页面时,我可以看到显示我的视图的结果,但后来我遇到了这个问题:

此页面无法使用 此请求无法通过以下方式处理 此时 localhost 和 HTTP ERROR 500

这是我的控制器代码:

public function  index()
{

    $Commandes =  DB::connection('sqlsrv2')->table('Commande_nadine')
        ->get();

    return view('detailsCommandes',compact('Commandes'));
}

我的 HTML 代码:

<thead>
  <tr>
    <th>ID Commande</th>
    <th>Date Commande</th>
    <th>Numéro de commission</th>
    <th>Année</th>
    <th>Marque</th>
    <th>Modèle</th>
    <th>Finition</th>
    <th>Reférence LC</th>
  </tr>
</thead>
<tbody>
  @foreach($Commandes as $Commande)
  <tr>
    <td>{{$Commande->RECID_NADIN}}</td>
    <td>{{$Commande->DATE_DOCUMENT_CMD_ACHAT_FRS}}</td>
    <td>{{$Commande->Num_Commission_NADIN}}</td>
    <td>{{$Commande->Annee}}</td>
    <td>{{$Commande->CodeMarque}}</td>
    <td>{{$Commande->CodeModele}}</td>
    <td>{{$Commande->CodeFinition}}</td>
    <td>{{$Commande->REF_LC_BANQUE}}</td>

  </tr>
  @endforeach

</tbody>

这是我的路线:

 Route::get('/detailsCommandes', 'CommandeNadineController@index')->name('details');

你能告诉我这里有什么问题吗?

【问题讨论】:

  • 检查应用程序日志,看看是否有未处理的异常记录在那里。
  • 我得到这个:local.ERROR: 允许的内存大小为 134217728 字节已用尽(尝试分配 34497832 字节)
  • 我建议您尝试对查询进行分页。看起来您的数据库中可能有大量记录,并且将它们完全加载到内存中会导致该错误。
  • 确实,这就是问题的原因。但是,如果我对查询进行分页,它将只显示我在编写查询时在 paginate() 中提到的行数,在我的情况下,我需要检索所有记录。

标签: laravel datatables


【解决方案1】:

查看在查询和遇到内存问题时使用 cursor()。 https://laravel.com/docs/5.7/eloquent#chunking-results

也尝试只选择您需要的 db 列,而不是返回完整的记录 i。 e. SELECT * FROM table 可能会非常昂贵,尤其是在您没有使用所有数据的情况下

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2017-03-06
    • 2017-12-19
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    相关资源
    最近更新 更多