Laravel 5.2 EagerLoading关系返回null


Laravel 5.2 EagerLoading relationship returns null

我正在从4.2升级到Laravel 5.2,遇到了一个奇怪的问题,当我在一个关系上使用Eager Loading时,它返回null,但我可以手动调用它。

这是我的父模型:

namespace App'Models'Hours;
class Hours extends Model {
/**
 * Model Setup
 */
protected $table = 'leave_hours';
protected $primaryKey = 'leave_id';
public $timestamps = false;
/**
  * Relationships
*/
public function hoursStatus()
{
    return $this->belongsTo('App'Models'Hours'HoursStatusType', 'leave_status_code');
}

这是HoursStatusType模型:

<?php
namespace App'Models'Hours;
use Illuminate'Database'Eloquent'Model;
class HoursStatusType extends Model {
    /**
     * Model Setup
     */
    protected $table = 'leave_status_type';
    protected $primaryKey = 'leave_status_code';
    public $timestamps = false;
    /**
      * Relationships
    */
    public function hours()
    {
        return $this->hasMany('App'Models'Hours'Hours');
    }
}

基本小时有PTO请求有一个状态(即。待定、批准等)。HoursStatusType只有4行,它属于许多Hours请求。

我正在做一个关于Hours的大请求,比如:

$requests = Hours::with('hoursStatus')->get();
foreach($requests as $r){
   print_r($r->hoursStatus);
}

当我尝试使用foreach循环打印此内容时,hoursStatus关系为空白。然而,当我调用它时,没有急切加载,这很好。自从从4.2升级以来,我唯一改变的是(除了添加命名空间)将hoursStatus关系从hasOne更改为belongsTo。另外几个帖子提到,改变它应该修复它。其实不然。

我错过了什么吗?谢谢!

当PK不是一个自动递增的整型时,您应该将public $incrementing = false;添加到您的模型设置中。