我想保持我的数据库中的两个表之间的关系。雄辩有一个关系不工作laravel 5.4
用户表:
Id User_id Name
联系人表:
Id User_Id contacts
我保存在联系人表中的多个联系人。现在我想检索保存到User_ID的所有联系人。为此,我试图建立一个hasOne关系,但我得到了下面的代码错误有人可以让我知道我做错了什么?我正在关注这个官方文档。
用户模式:
class users extends Model
{
protected $table = "users";
public function contacts()
{
return $this->hasOne('App\contacts','User_Id');
}
}
联系型号:
class contacts extends Model
{
public $table = "contacts";
public function Users(){
return $this->belongsTo('App\Users','User_id');
}
}
控制器:
public function eloquentget(){
$contacts = Users::find(1)->contacts->first();
return response()->json($contacts,200);
}
当我尝试在邮递员这个代码我得到一个异常:
ErrorException
Trying to get property of non-object
我在做什么错?任何帮助将不胜感激。
为什么用户表中有'id'和'User_Id'?你也可以选择名称,特别是非标准的案例,你应该考虑遵循Laravel的建议w.r.t.命名为 – apokryfos
代码运行后,您可能需要https://codereview.stackexchange.com/上的人员运行它,以获取有关@apokryfos建议的命名约定和表结构的反馈。有几件事你可能应该改变,让你的生活在未来更轻松。 –
我正在使用联系人表中的ID来编辑单独的联系人。因为我有多个使用相同的user_id。 – Prakash