laravel 急切加载函数不返回关系,但单独工作

问题描述 投票:0回答:1

我有以下型号

<?php

namespace App\Models\Masters\System;

class UserActivationCode extends \Illuminate\Database\Eloquent\Model
{

    public $table = "user_activation_codes";
}

<?php

namespace App\Models;

use App\Models\Model;
use Modules\Requests\Models\EmploymentLeaveType;
use App\Models\Masters\System\UserActivationCode;

class EmployeeEmployment extends \Illuminate\Database\Eloquent\Model {

    public $table = "employee_employments";

    public function employeeProfileScore() {
        return $this->hasOne('\App\Models\EmployeeProfileScore', 'employee_id', 'employee_id');
    }
    public function test() {
        return $this->hasMany(UserActivationCode::class, 'employment_id', 'id');
    }

}

当我运行以下命令时

$emp = \App\Models\EmployeeEmployment::with('test')->whereIn('id', ["4228e839-5ce3-4798-acfd-68958fed3b82"])->first();
$emp->test;

结果是空数组

但是当我运行时不使用它会返回数据

$emp = \App\Models\EmployeeEmployment::whereIn('id', ["4228e839-5ce3-4798-acfd-68958fed3b82"])->first();
$emp->test;

我从模型中删除了所有内容,将其转换为基本状态 在查询中,我运行以下查询,我无法理解为什么雇佣_id 为 0

laravel relational-database eager-loading
1个回答
0
投票

检查您的测试关系是如何加载的。外键与数据库中设置的内容之间是否可能不匹配?确保 user_activation_codes 表中的雇佣_id 和 id 在数据库中具有相同的类型(如果您使用 UUID,则均为 UUID)。

© www.soinside.com 2019 - 2024. All rights reserved.