我有几个称为海报的项目有日志。我想在创建这些日志的日期前订购海报。我该如何改进我的查询,以获得“PHP致命错误:允许的内存大小”(在laravel 5.2中订购和分页)
我有一个名为海报与此代码模式:
class Poster extends Model {
protected $table = 'posters';
public function pos_log_resumenEnviado()
{
return $this->hasMany('App\models\PosterLog', 'pos_id')->where('log', 'Autores de poster enviado')->orWhere('log', 'Resumen de poster modificado')->latest();
}
然后在我控制我检索的结果是这样的:
$posters = Poster::with('pos_log_resumenEnviado', 'user')->where('state', 'Resumen pendiente de aceptacion')->get();
$posters = $posters->sortBy(function($pos)
{
if(sizeof($pos->pos_log_resumenEnviado) > 0)
return $pos->pos_log_resumenEnviado[0]->created_at;
})->take(1200);
我得到的所有的海报,然后我命令他们,并采取前1200个结果。这一直工作正常(表现缓慢),但现在我得到了我在标题中说的php错误。错误出现连sortBy执行之前,刚刚与的get()
如果我没有使用sortBy我可以使用PAGINATE()方法,但我不知道是否有另一种方式为了这个命令。
我看来,要排序你用PHP的结果,你为什么不使用MYSQL呢? – Mcsky
因为我不知道如何使用MYSQL来排序这个字段。 –
我不使用Laravel,但应阅读文档以通过mysql执行命令。这会更快,并避免php内存限制错误。 – Mcsky