我使用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'];
}
我将不胜感激。
答案 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查询回退的数据超出了设定的数据限制。增加限制,一切正常。