簡體   English   中英

Laravel 5.2 EagerLoading關系返回null

[英]Laravel 5.2 EagerLoading relationship returns null

我正在從4.2升級到Laravel 5.2,並遇到一個奇怪的問題,當我在關系上使用“急切加載”時,它返回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請求中的許多行。

我對“小時”這樣的要求很高:

$requests = Hours::with('hoursStatus')->get();

foreach($requests as $r){
   print_r($r->hoursStatus);
}

當我嘗試使用foreach循環將其打印出來時,hoursStatus關系為空。 但是,當我在沒有急切加載的情況下調用它時,就可以了。 自從4.2升級以來(除了添加命名空間),我唯一更改的是將hasStatus關系從hasOne更改為belongsTo。 另外幾篇文章提到更改它應該可以解決它。 沒那么多。

我想念什么嗎? 謝謝!

您應該添加public $incrementing = false; 當PK不是自動遞增的int時,將其設置為模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM