我坚持使用Laravel(也是新手),引用了多对多关系文档,仍然无法找出我的问题。
我有一个模特公司,看起来像:
class Company extends Eloquent
{
public static $timestamps = true;
public function owner()
{
return $this -> belongs_to('User', 'owner_id');
}
public function users()
{
return $this -> has_and_belongs_to_many('User', 'company_users');
}
}
另外,我有一个模型用户,看起来像这样:
class User extends Eloquent
{
public static $timestamps = true;
public function companies()
{
return $this -> has_and_belongs_to_many('Company');
}
}
我有一个用户保存到ID为1的数据库,所以我做
$user = User::find(1);
var_dump($user -> companies() -> get());
$company = new Company();
$company -> name = 'name';
$company -> owner_id = $user -> id;
$company -> save();
问题是,如何将所有者保存在公司的用户()中?
谢谢!
答案 0 :(得分:3)
保存公司后,请将用户附加到该公司,如下所示:
$company->users()->attach($user->id);
这样可以确保$user->id
与[{1}}
company_users
表格中
答案 1 :(得分:1)
"问题是,如何将所有者保存在公司的用户()内?"
您拥有的是两个需要保持同步的独立关系。我会重载公司模型上的save方法,以便在更改user_id(所有者)时,将新的所有者ID添加到用户关系中。
// Something like this, untested, etc...
public function save()
{
parent::save();
if ( $this->changed( 'user_id' ) )
{
$this->users()->attach( $this->user_id );
}
}