laravel从用户到另一个用户的传输关系

qzwqbdag  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(260)

我有一张table叫 lands 它拥有属于你的土地 users ,用户可以占用另一个用户的土地并将其占用。所以,我想改变 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 匹配新用户?

vfh0ocws

vfh0ocws1#

有多种方法可以通过口才做到这一点:
制造 user_id 可填充:
如果您在 Land 模型,你可以通过一个简单的

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

在你的代码里。
另一种选择是推荐的雄辩方式:
使用

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

更改当前在 BelongsTo 关系。

相关问题