【问题标题】:Laravel Model not retrieving dataLaravel 模型不检索数据
【发布时间】:2017-01-05 13:59:04
【问题描述】:

我正在使用 laravel 从数据库中提取一些日志信息,但它突然停止工作,因为它没有检索数据并且没有返回任何内容。我使用 vuejs 在不刷新页面的情况下检索数据,前端没有问题,因为仍然可以在 chrome 调试控制台中检索数据,并显示为 500 错误。

此外,我觉得奇怪的是它可以在本地工作,但不能在生产环境中工作。

有效和无效的示例代码

 <?php

namespace App\Http\Controllers;

use App\Log;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class LogController extends Controller
{

    public function getLogData()
    {

          //This is the original code & it doesn't work in production! 
          //$data = Log::orderBy('id', 'DESC')->select('action', 'object_id', 'ip_address', 'user', 'time', 'date')->get();

        //This works! But only retrieves 1 row of information
        $data = Log::where('id', 1)->get();

        $data = str_replace('*', "<b>", $data);
        $data = str_replace('^', "</b>", $data);

        return $data;
    }

}

这是日志模型,除了将数据真正输入数据库之外,它不应该真正影响任何事情,但只是以防万一有人需要这些信息。

namespace App;

use Illuminate\Database\Eloquent\Model;

class Log extends Model
{
    protected $fillable = ['action', 'object_id', 'object_type', 'ip_address', 'user', 'time', 'date'];
}

如果我得到任何帮助,我们将不胜感激。

【问题讨论】:

  • 对于 500 错误,请查看您在 storage/logs 中的日志。我猜你可能需要重新排序你的 Log 语句:select,然后 orderBy,然后 get。
  • $data = Log::where('id', 1)-&gt;get(); 将只检索 ID = 1 的条目。当您在生产环境中尝试原始查询时,您会遇到什么错误?
  • @aynber 如果是这种情况,那么 1 为什么它在本地工作,以及为什么它在过去六个月内工作,然后随机停止,我没有接触过这个网站的日志系统几个月。我会检查日志并回复你!
  • @DainisAbols 我认为您没有正确阅读问题
  • 不知道,这就是猜测的原因。我知道当我混淆命令的顺序时我的系统会变得有点挑剔。你看过日志吗?

标签: php laravel-5.1


【解决方案1】:

这个问题的答案可以在这里详细找到:Limit on amount of rows retrieved MySql, Laravel

简而言之,由于我的日志表的每日数据不断增长,我的 Mysql 查询拉回的数据超过了我设定的数据限制。增加了限制,一切都照常进行。

【讨论】:

    【解决方案2】:

    我会检查 php5 错误文件,检查您的 php.ini 以了解错误文件在生产机器上的位置。有时在 php 错误文件日志中的日志中缺少 500s。可能存在内存泄漏,例如字符串太长,php 内存无法处理它,因为它会返回一个有时可能很长的日志条目。

    另外,您能否像这样将 select 语句作为传递给模型的第一件事(不会解决手头的问题,但这样做的最佳做法)

    Log::select('action', 'object_id', 'ip_address', 'user', 'time', 'date')
         ->orderBy('id', 'DESC')
         ->get();
    

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      相关资源
      最近更新 更多