我有一个名为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
以匹配新用户?
答案 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
关系下稳定的用户。