我对Laravel非常陌生。 我想显示所需的数据,并创建与表的关系,但无法正常工作。你能找到我的任何错误吗?
我有两个表 Users 和 Places
用户模型
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"
}
]
}
答案 0 :(得分:2)
我认为您的关系已经调换。相反:
用户模型:
public function places()
{
return $this->hasMany('App\Places');
}
User 具有外键places_id
,因此 User 不属于地点,但是具有
地点模型:
public function users()
{
return $this->belongsTo('App\User');
}
一个 Place 没有用户,而是属于属于一个用户。我知道一开始它会令人困惑,但是您一定会掌握它的!您可以使用此“技巧”来帮助您(至少我一直以来都这么想):
模型名称'关系'函数名称
在原始海报的新评论后添加/更新(带有外键):
用户模型:
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')
。