Laravel Model不检索数据

时间:2017-01-05 13:59:04

标签: php laravel-5.1

我使用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'];
}

我将不胜感激。

2 个答案:

答案 0 :(得分:0)

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

另外,你能否将select语句作为你传递给模型的第一件事(不是解决了手头的问题,而是最好的做法)

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

答案 1 :(得分:0)

这个问题的答案可以在这里详细找到:{{3}}

简而言之,由于我的日志表日常数据不断增长,我的Mysql查询回退的数据超出了设定的数据限制。增加限制,一切正常。