我正试图获取国家名称的数据,
我有两个模型
1)用户模型
用户:
class Users extends Model
{
protected $fillable = ['fname','lname','email','password','address','state','city'];
public function address1()
{
return $this->hasOne('App\Addresses');
}
}
2)地址模型
地址:
class addresses extends Model
{
protected $fillable = ['user_id','country'];
public function user()
{
return $this->belongTo('App\users');
}
}
现在我正在获取输出-这是一个错误:
SQLSTATE [42S22]:找不到列:1054未知列 “ where子句”中的“ addresses.users_id”(SQL:从
addresses
中选择* 其中addresses
。users_id
= 5和addresses
。users_id
不是 null和addresses
。id
= 2个限制1)(查看: /Applications/XAMPP/xamppfiles/htdocs/demo/resources/views/profiles.blade.php)
请解决我的问题。
答案 0 :(得分:1)
首先,错误非常清楚地说明了问题所在-users_id
表中没有addresses
列。
您还没有显示出尝试使用这些关系的精确程度,但是我认为问题出在这里:
public function user()
{
return $this->belongTo('App\users');
}
当您使用不遵循Laravel约定的模型名称时,应传递外键列名称,例如:
public function user()
{
return $this->belongTo('App\users', 'user_id');
}
这里user_id
仅是一个示例。我不知道您的表中定义与用户关系的真实列名是什么。
但是,我强烈建议您使用Laravel和PHP约定:
addresses
而不是Addresses
(请记住,文件名应具有完全相同的大小写,例如Addresses.php`