Php BadMethodCallException属于第5.4节
请允许我尝试在Laravel 5.4中建立多对多关系,但我总是会遇到以下错误: Builder.php第2443行中的BadMethodCallException:调用未定义 方法\Database\Query\Builder::categories() 我认为我的代码是好的,我无法修复它,请任何帮助 多谢各位 这是我的代码: 用户模型Php BadMethodCallException属于第5.4节,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,请允许我尝试在Laravel 5.4中建立多对多关系,但我总是会遇到以下错误: Builder.php第2443行中的BadMethodCallException:调用未定义 方法\Database\Query\Builder::categories() 我认为我的代码是好的,我无法修复它,请任何帮助 多谢各位 这是我的代码: 用户模型 class User extends Model { public function categories() { return
class User extends Model
{
public function categories()
{
return $this->belongsToMany('App\Category', 'user_categorys');
}
}
class Category extends Model
{
public function users()
{
return $this->belongsToMany('App\User', 'user_categorys');
}
}
类别模型
class User extends Model
{
public function categories()
{
return $this->belongsToMany('App\Category', 'user_categorys');
}
}
class Category extends Model
{
public function users()
{
return $this->belongsToMany('App\User', 'user_categorys');
}
}
调用方法
$user = User::where('id',$id_user)->first();
foreach ($request->input("idcategs") as $value) {
$user->categories()->save($value);
}
使用多对多关系附着或分离模型时,应使用
attach()
、detach()
和sync()
方法
如果idcategs
是一个ID数组,请执行以下操作:
$user = User::find($id_user);
$user->attach($request->idcategs);
如果是准备好的数据数组,则需要首先创建类别:
$categoriesIds = [];
$user = User::find($id_user);
foreach ($request->idcategs as $value) {
$categoriesIds[] = Category::create($value)->id;
}
$user->attach($categoriesIds);
当使用多对多关系连接或分离模型时,应使用
attach()
、detach()
和sync()
方法
如果idcategs
是一个ID数组,请执行以下操作:
$user = User::find($id_user);
$user->attach($request->idcategs);
如果是准备好的数据数组,则需要首先创建类别:
$categoriesIds = [];
$user = User::find($id_user);
foreach ($request->idcategs as $value) {
$categoriesIds[] = Category::create($value)->id;
}
$user->attach($categoriesIds);
你弄错了:
如果您有多对多关系,一个或多个关系应:
public function users()
{
return $this->belongsToMany('App\User', 'foreign_key');
}
您必须定义透视表类别。\u用户如果您弄错了:
如果您有多对多关系,一个或多个关系应:
public function users()
{
return $this->belongsToMany('App\User', 'foreign_key');
}
您必须定义透视表类别\u用户此错误表示您在查询生成器上调用的是
categories()
,而不是模型。您确信您的代码中有从first()
调用中分配的$users
吗?此错误表示您在查询生成器上调用的是categories()
,而不是模型。您确信您的代码中有从first()
调用分配的$users
吗?