laravel无法从Datatbase加载大型数据集

时间:2016-11-27 14:15:00

标签: php mysql laravel laravel-5.3

我有一个简单的Question模型与 oneToMany 关系本身,名为latest_sub_question,如下所示:

class Question extends Model

{
    useSoftDeletes;
    protected $primaryKey = 'question_id';

    public function latest_sub_question()
        {
        return $this->hasOne(Question::class , 'parent', 'question_id')->latest();

        }
}
questions模型相关的

Question表包含关于 30k 记录的大型数据集。

现在在控制器方法中,我想获取所有记录(请注意,我想要所有记录,因此我不想使用chunk paginations 方法)。为此我写了这个:

function questionsDatatable(Request $request)
    {
    $questions = Question::with('latest_sub_question');

    //Applies some constraint method on $questions here


    $questions = $questions->get();
   //Eloquent returns a query builder object and beacause I want to run `map` function should convert it to a collection.

    $questions = $questions->map(function ($item, $key)
        {
        return is_null($item->latest_sub_question) ? $item : $item->latest_sub_question;
        });

    $questions->sortByDesc('created_at');

    return $questions;

}

但似乎由于$questions包含大数据,laravel无法解析它并且始终不会返回任何内容。

我不明白是什么问题?你的解决方案是什么?

0 个答案:

没有答案