关系返回null

2ul0zpep  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(366)

我对拉雷维尔很陌生。我想显示所需的数据,并创建与表的关系,但它不起作用。你能找出我的错误吗?
我有两张table和两个地方
用户模型

protected $fillable = array('name', 'email', 'password','role','places_id');

public function places(){
     return $this->belongsTo('App\Places');
}

地点模型

protected $fillable = array('name','email','phone','address','bio');

public function users()
{
    return $this->hasMany('App\User');
}

控制器

$users = User::with('Places')->get();
 return view('/dashboard')->with('users',$users);

输出为

Collection {#121 ▼
  #items: array:3 [▼
    0 => User {#322 ▶}
    1 => User {#323 ▶}
    2 => User {#324 ▼
      #fillable: array:5 [▶]
      #hidden: array:2 [▶]
      #connection: "mysql"
      #table: "users"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:10 [▶]
      #original: array:10 [▶]
      #changes: []
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: array:1 [▼
        "Places" => null
      ]
      #touches: []
      +timestamps: true
      #visible: []
      #guarded: array:1 [▶]
      #rememberTokenName: "remember_token"
    }
  ]
}
whlutmcx

whlutmcx1#

我想你已经交换了关系。反过来说:
用户模型:

public function places()
{
     return $this->hasMany('App\Places');
}

用户具有外键 places_id ,因此用户不属于某个地方,而是有一个地方。
位置模型:

public function users()
{
    return $this->belongsTo('App\User');
}

一个地方没有用户,而是属于一个用户。我知道一开始很混乱,但你一定会掌握窍门的!你可以用这个“把戏”来帮助你(至少我一直都是这么记得的):
模型名称“关系”函数名称
添加/更新原始海报的新评论(带外键):
用户模型:

public function places()
{
     return $this->hasMany('App\Places', 'places_id', 'id');
}

位置模型:

public function users()
{
    return $this->belongsTo('App\User', 'places_id', 'id');
}

关系的格式是 ('Model Name', 'foreign key', 'local key') .

相关问题