【问题标题】:Eloquent Relationship with eager loading与急切加载的雄辩关系
【发布时间】:2019-09-14 14:10:15
【问题描述】:

我有以下代码来获取最终数据$result2

$agent = auth()->user()->id;
$result = App\AgentStatus->select('callId')->where(function($query)use($agent) {
    $query->where('agentId', '=', $agent);
})->first();
$result2 = NULL;
if($result != NULL) {
    $id = $result->callId;
    $calls = App\CallStatus->where(function($query)use($id) {
       $query->where('callId', '=', $id);
    })->first();
    $id = $calls->callerId;
    $result2 = App\Callout->where(function($query)use($id) {
        $query->where('number', '=', $id);
    })->first();
}

型号:

代理状态:

protected $primaryKey = 'agentId';

通话状态

protected $primaryKey = 'callId';

标注:主键是行id

这是我与 laravel 合作的第一个项目,我想将上面的代码更改为实现关系和预加载的东西。目前它可以工作,但当表有更多行时,它可能会运行得太慢。

【问题讨论】:

  • “运行太慢”和“使用太多 RAM”?

标签: php mysql laravel eloquent mariadb


【解决方案1】:

Laravel 有很好的文档

https://laravel.com/docs/5.8/eloquent-relationships

如果您担心性能问题,可以关注非规范化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多