laravel中的一对一关系

时间:2015-12-12 06:46:13

标签: php laravel laravel-5 laravel-5.1

工作模式

class Job_Model extends Model
{
    protected $table = "tbljobs";
    protected $primaryKey = "JobID";
    public $timestamps = false;

    public function OrderType()
    {
        return $this->hasOne('\App\Models\OrderType_Model', "OrderTypeID");
    }
}

订单类型型号

class OrderType_Model extends Model
{
    protected $table = "tblOrderType";
    protected $primaryKey = "OrderTypeID";
    public $timestamps = false;
}

查询

$Jobs = \App\Models\Job_Model::with("OrderType")->get();

我正在检索tbljobs表中的所有记录。但是每条记录都没有显示订单类型表中的相关记录。

  

我错过了什么吗?

dd()结果

enter image description here

2 个答案:

答案 0 :(得分:1)

您需要has()with()。仅返回具有订单类型的作业,并实际将订单类型注入每个作业。

 $Jobs = \App\Models\Job_Model::has("OrderType")->with("OrderType")->get();

编辑:如果你的外键实际上是在Jobs表中,而不是Order类型表,那么你想要一个属于关系。

hasOne()假定外键在另一个表中。

belongsTo()假定外键在此表中。

答案 1 :(得分:0)

我想您的问题是如何在屏幕上看到转储的数据?试试这个

$Jobs = \App\Models\Job_Model::with("OrderType")->get();

foreach ($Jobs as $job) {
    var_dump($job->toArray());
}