我想用laravel连接两个表,但我被卡住了。
我有2个MySSL表
table strans
+ id
+ trans_code
+ trans_description
table step
+ step_id
+ step_trans_code
+ step_proc_sequence
字符串
我的模型看起来像这样:
class Strans extends Model
{
protected $table = 'hc_strans';
protected $fillable = [
'trans_code', 'trans_description', 'trans_sk_code'
];
public function step()
{
return $this->hasMany(Sstep::class, 'step_trans_code', 'trans_code');
}
}
class Sstep extends Model
{
protected $table = 'hc_sstep';
protected $fillable = [
'step_trans_code', 'step_proc_sequence'
];
public function transCode()
{
return $this->belongsTo(Strans::class, 'trans_code', 'step_trans_code');
}
}
型
在步骤控制器中,我调用关系:
$step = Sstep::with('transCode')->get();
型
表中的数据有所有的关系值。但是当我尝试关系时,transCode变量返回空值。我尝试手动查询,没有问题。
"data": [
{
"step_id": 8,
"step_trans_code": "MUT",
"step_proc_sequence": 80,
"trans_code": null
}
]
型
我在这段关系中做错了吗?
3条答案
按热度按时间yvt65v4c1#
Laravel有一个命名约定,例如在属于关系中它会将外键视为stran_id,因此显式定义外键。
字符串
bf1o4zei2#
字符串
hsvhsicv3#
另一个答案是,你可以很容易地做到以下没有
with
:字符串