4.2에서 Laravel 5.2로 업그레이드하고 관계에서 Eager Loading을 사용할 때 null을 반환하지만 수동으로 호출 할 수있는 이상한 문제로 실행됩니다.Laravel 5.2 EagerLoading 관계가 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 개의 행만 있으며 많은 시간 요청에 속합니다.
내가 같은 시간에 큰 요구하고 있어요 : 나는 foreach 루프를 사용하여이를 인쇄하려고하면
$requests = Hours::with('hoursStatus')->get();
foreach($requests as $r){
print_r($r->hoursStatus);
}
을의 hoursStatus 관계가 비어 있습니다. 그러나, 열심히 선적하지 않고 그것을 부를 때, 괜찮습니다. 4.2에서 업그레이드 한 이후로 변경된 유일한 것은 namespace를 추가하는 것 외에 hasOne에서 hoursStatus 관계를 belongsTo로 변경하는 것입니다. 또 다른 몇 개의 게시물은 그것을 변경해야한다고 언급했다. 별로.
내가 누락 된 항목이 있습니까? 감사!
Wooooooooooooow. 나는 그 존재를 전혀 몰랐다. 그거였다! 관계를 belongsTo로 바꾸고 그 라인을 타입 모델에 추가하는 것은 매력처럼 작용했습니다. 나는 그것을 믿을 수 없다. – cbloss793
오, 감사합니다 @alejandro !! :) – cbloss793
@ cbloss793 내가 기꺼이 도와 줘서 기쁩니다.) – alepeino