我有2个模型管理和订阅
模型管理. php
public function subscription() {
return $this->hasOne('App\Subscription','admin_id','id');
}
模型订阅. php
public function payer() {
return $this->belongsTo('App\Admin','admin_id','id');
}
当我试图获得订阅的付款人时,它返回null。我得到的付款人是这样的。
在控制器. php中
$subscriptions=Subscription::all();
foreach ($subscriptions as $subscription) {
dd($subscription->payer);
}
请给予我一个解决方案。我尝试和改变一切,它仍然没有工作。
这是我的迁移
订阅表
id int(10) unsigned Auto Increment
subscription_type varchar(191) NULL
expiry_date timestamp NULL
status varchar(191) [required]
admin_id varchar(191)
created_at timestamp NULL
updated_at timestamp NULL
管理表
id int(10) unsigned Auto Increment
name varchar(191)
email varchar(191)
password varchar(191)
remember_token varchar(100) NULL
created_at timestamp NULL
updated_at timestamp NULL
3条答案
按热度按时间6yjfywim1#
我不确定,因为你还没有显示你的迁移文件,但我认为你可能设置错误的关系,你指定了相同的外部。而且,如果主键名为'id',你不需要指定它。所以也许这工作:
模型管理员
模型订阅
kqlmhetl2#
如果你不使用数字作为id,拉腊维尔会投出一个适合的球。如果你使用字符串,你必须告诉它。
如果您有任何问题,请与我们联系.
a0x5cqrl3#
为hasOne编写方法名必须超过3个字符。