我一直在与拉威尔的关系斗争。
所以我有3张桌子:
如你所见,关系countries_user。现在每次都会给出错误,比如:
Illumb\Database\QueryException:SQLSTATE[42S22]:未找到列:1054未知列“国家/地区”。“where子句”(SQL:select)中的用户id
国家
其中国家
。user_id
=1和国家
。user_id
不是null)在文件C:\xampp\htdocs\gManager\供应商\laravel\框架\src\Illumate\数据库\Connection.php在线671我知道问题是它在国家而不是countries_user。如何定义我想在哪里搜索关系?
这是我的用户模型
public function countries()
{
return $this->hasMany('App\Models\Countries');
}
还有我的国家模式
public function users()
{
return $this->belongsToMany(User::class);
}
请尝试指定表名
public function users()
{
return $this->belongsToMany(User::class, 'countries_user');
}
而且逆关系也应该属于同态
public function countries()
{
return $this->belongsToMany(Countries::class, 'countries_user');
}
并在国家/地区模型上指定表属性
class Countries extends Model
{
protected $table = 'countries';
//...
}
国家
之间的关系也应该是属性。
而不是
public function countries()
{
return $this->hasMany('App\Models\Countries');
}
把
public function countries()
{
return $this->belongsToMany('App\Models\Countries');
}