【发布时间】:2017-11-09 01:19:13
【问题描述】:
模型Ov.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Ov extends Model
{
protected $table = 'ov';
public $timestamps = true;
protected $fillable = array('version', 'macAddress');
protected $hidden = array('timestamps');
public function masters()
{
return $this->hasMany('App\Models\MasterEquipment', 'id_ov_foreign_key');
}
}
型号MasterEquipment.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MasterEquipment extends Model
{
protected $table = 'masterEquipment';
public $timestamps = true;
protected $fillable = array('macAddress');
public function slaveEquipments()
{
return $this->hasMany('App\Models\SlaveEquipment', 'id_masterEquipment_foreign_key');
}
public function equipment()
{
return $this->hasOne('App\Models\Equipment', 'id_masterEquipment_foreign_key');
}
}
我想检索给定版本 OV 的整个 JSON 表示: 我试过了:
return Ov::where('version', '3')->with('masters')->get();
但这不起作用,我只得到以下JSON:(masters为空)
{
"version": 3,
"macAddress": "00:01:02:04:04",
"masters":[]
}
你能帮帮我吗?
【问题讨论】:
-
看到这个document,它的帮助已满
-
请将
Ov和MasterEquipment的数据库方案添加到您的问题中。hasmany()的反义词应该是belongsTo()而不是hasOne() -
这两个表的主键列名是什么?
-
@Björn 当我创建 hasMany 关系时,是否必须在另一个模型中添加 belongsTo() 关系?
-
@wawanopoulos:不,不是。您应该将表模式添加到问题帖子中,以便人们解决您遇到的错误。
标签: php json laravel laravel-5 eloquent