laravel从用户到另一个的转移关系

时间:2018-09-29 15:45:05

标签: php mysql laravel eloquent

我有一个名为lands的表,该表具有属于users的地带,用户可以占用另一个用户地带并将其占用。因此,我想更改lands表中的user_id以使其属于占领者。

土地表:

$table->increments('id');
        $table->string('name');
        $table->smallInteger('size');
        $table->smallInteger('type')->default(0)->comment('0 is village, 1 is city ');
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users')
        ->onUpdate('cascade')->onDelete('cascade');

是否有一种雄辩的方法来更改user_id以匹配新用户?

1 个答案:

答案 0 :(得分:1)

通过Eloquent,有多种方法可以做到这一点:

使user_id可填充

如果在Land模型中使user_id可填充,则可以通过简单的

填充
$land->update(['user_id' => $newUser->id])

在您的代码中。

另一种选择是推荐的口才方法

使用

$land->user()->dissociate();
$land->user()->associate($newUser->id);
$land->save();

要更改当前在BelongsTo关系下稳定的用户。