Php 拉威尔的一对一关系
工作模式Php 拉威尔的一对一关系,php,laravel,laravel-5,laravel-5.1,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', "OrderTy
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;
}
订单类型模型
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()结果
我想你的问题是如何在屏幕上看到转储的数据?像这样试试
$Jobs = \App\Models\Job_Model::with("OrderType")->get();
foreach ($Jobs as $job) {
var_dump($job->toArray());
}
您需要has()
和with()
。Has仅返回具有订单类型的作业,并且实际将订单类型注入到每个作业中
$Jobs = \App\Models\Job_Model::has("OrderType")->with("OrderType")->get();
编辑:如果您的外键实际位于Jobs表中,而不是Order type表中,则需要一个属于关系
hasOne()
假定外键在另一个表中
belongsTo()
假定外键在此表中 您可以添加()该查询的结果并将其粘贴到此处吗?您可以使用(“OrderType”)->get()->toSql()添加\App\Models\Job\u Model::的结果吗
?在OrderType_Model
中是否有任何记录?orderTypeID
和orderTypeID
是两个不同的字符串,用于laravelTry侦听查询事件event::listen('light.query',function($query){var\u dump($query);})
并查看查询是否正确。您可以将其放在routes.php中进行测试。