Eloquent 关联模型 取不出关联表的数据
company 物业表 主表,
propertyMain 小区表 从表一个物业对应多个小区,一个小区对应一个物业
应用场景,小区增删改的列表,需要显示小区对应的 物业信息
用 with 取不出来!!!!
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PropertyMain extends Model {
protected $table = 'property_main';
public $primaryKey = 'mId';
protected $fillable = [
'mId',
'phone',
'companyId',
];
public function company() {
//参数1目标模型 参数2当前模型与company表关联的外键ID 参数3companny主键ID
return $this->belongsTo('App\Models\Company','companyId','mId');
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Company extends Model {
protected $table = 'company';
public $primaryKey = 'mId';
protected $fillable = [
'mId',
'name',
'phone',
'introduce'
];
public function propertyMain() {
return $this->hasMany('App\Models\Property','mId','mId');
}
}
$propertyMains = PropertyMain::with('company')->get();
foreach ($propertyMains as $b){
dd($b->company); // 返回空
}
$propertyMains = PropertyMain::where([])->orderBy('created_at', 'asc')->paginate(12);
foreach ($propertyMains as $b){
dd($b->company); // 可以取到数据
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
哎,belongToMany第二个参数是中间表吧,好像漏了
外键写错了
mId -> companyId
一对多的关系,PropertyMain 是属于 Company 的,在 PropertyMain 里存了 Company 的主键作为外键,所以外键始终是 companyId
return $this->hasMany('AppModelsProperty','companyId','mId');
第二个参数是当前模型在关联模型里的外键