Eloquent 关联模型 取不出关联表的数据

发布于 2022-09-04 19:24:30 字数 1505 浏览 14 评论 0

代码更新地址

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

慕巷 2022-09-11 19:24:30

哎,belongToMany第二个参数是中间表吧,好像漏了

梦太阳 2022-09-11 19:24:30

外键写错了 mId -> companyId
一对多的关系,PropertyMain 是属于 Company 的,在 PropertyMain 里存了 Company 的主键作为外键,所以外键始终是 companyId

public function propertyMain() {
    return $this->hasMany('App\Models\PropertyMain','companyId','mId');
}
鸠书 2022-09-11 19:24:30

return $this->hasMany('AppModelsProperty','companyId','mId');
第二个参数是当前模型在关联模型里的外键

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文