Laravel 模型未检索数据
Laravel Model not retrieving data
我正在使用 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'];
}
我将不胜感激。
我会检查 php5 错误文件,检查您的 php.ini 生产机器上错误文件的位置。日志中丢失的 500 秒有时会出现在 php 错误文件日志中。可能存在内存泄漏,例如字符串太长,php 内存无法处理它,因为它会返回一个有时可能很长的日志条目。
此外,您能否像这样将 select 语句作为传递给模型的第一件事(不会解决手头的问题,但这样做是最佳实践)
Log::select('action', 'object_id', 'ip_address', 'user', 'time', 'date')
->orderBy('id', 'DESC')
->get();
这个问题的详细答案可以在这里找到:
简而言之,由于我的日志 table 的每日数据不断增长,我的 Mysql 查询返回的数据超过了我设定的数据限制。增加了限制,一切正常。
我正在使用 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'];
}
我将不胜感激。
我会检查 php5 错误文件,检查您的 php.ini 生产机器上错误文件的位置。日志中丢失的 500 秒有时会出现在 php 错误文件日志中。可能存在内存泄漏,例如字符串太长,php 内存无法处理它,因为它会返回一个有时可能很长的日志条目。
此外,您能否像这样将 select 语句作为传递给模型的第一件事(不会解决手头的问题,但这样做是最佳实践)
Log::select('action', 'object_id', 'ip_address', 'user', 'time', 'date')
->orderBy('id', 'DESC')
->get();
这个问题的详细答案可以在这里找到:
简而言之,由于我的日志 table 的每日数据不断增长,我的 Mysql 查询返回的数据超过了我设定的数据限制。增加了限制,一切正常。