我正在try 更新拉维尔一对多的关系.不幸的是,我找不到它的任何文档.有人能帮我吗?

这就是我目前的情况:

class Account extends Eloquent 
{
     public function users()
     {
         return $this->hasMany('User');
     }
}

class User extends Eloquent 
{
     public function account()
     {
         return $this->belongsTo('Account');
     }
}

Now I am trying to update the relationship from USER(1) > ACCOUNT(50) to USER(1) > ACCOUNT(99). How would I do this? I tried the following:

$account = Account::find(99);

User::find(1)->account()->save($account);

但这是行不通的:-(非常感谢您的帮助!!

更新:

以下工作:

$user = User::find(1);
$user->account_id = 99;
$user->save();

...但一定有一个更好的解决方案,像上面的那个,对吗?

它在多对多关系中使用save()和attach()方法来更新表之间的关系(从关系的两侧).在一对多关系中,似乎不支持attach()方法.

推荐答案

泰勒·奥特韦尔的官方答案如下:

$account = Account::find(99);
User::find(1)->account()->associate($account)->save();

我在官方文档中找不到associate()方法.所以如果其他人正在寻找解决方案.干得好!

Laravel相关问答推荐

当未通过验证的字段是值数组时,Laravel$validator->;validator()方法不会引发异常

如何返回Blade Laravel 中的按钮?

在 blade laravel 中以格式编号显示长数字

未找到 apiResource 404 中的变量

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息

Laravel + SQLite = SQLSTATE[HY000]一般错误:8次try 写入只读数据库

在Laravel 5中通过ID和所有递归获取记录

localhost 和stream_socket_enable_crypto():SSL 操作失败,代码为 1

在 Laravel 中无效后防止重定向到主页

PHP 5.5,什么情况下PHP会导致很高的committed memory

如何在 Laravel 中将秒转换为天小时分钟

Laravel 5.2 身份验证不起作用

WhereHas Laravel 中的关系计数条件是什么

判断输入是否来自控制台

Laravel 验证 pdf mime

今天之前的 Laravel 规则......怎么办

如何在 Eloquent Orm 中实现自引用(parent_id)模型

如何使用 Laravel 迁移在 Mysql 列中添加注释

Laravel 4:分析器在哪里?

以编程方式而不是从 CLI 运行 Laravel 5 seeder