首页 > 解决方案 > Laravel 关系和外键约束

问题描述

我有两个模型和迁移表。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Room extends Model
{
    public function guest()
    {
        return $this->hasOne(Guest::class);
    }
}

-

namespace App;

use Illuminate\Database\Eloquent\Model;

class Guest extends Model
{
    public function room()
    {
        return $this->hasMany(Room::class);
    }
}

房间 -> id,平方米,guest_id

客人 -> id、姓名、姓氏、电子邮件、电话、room_id(必填)

Room hasOne Guest -> 在模型中实现

Guest hasMany Rooms -> 在模型中实现

如果我创建一个客人,我必须添加一个房间号。room_table 中对应 id 的房间应该会自动更新为 guest_id。

新客人示例 :id(2), Name, last_name, phone, email, room_id(3) -> id 为 3 的房间应显示给 id 为 2 的客人。

我该如何实施?

标签: laravelforeign-keysmigrationrelationship

解决方案


在您的控制器中添加此功能:

public function CheckInUser($guest_id,$room_id)

 $guest = Guest::where('id',$guest_id)->firstOrFail();
 $room = Room::where('id',$room_id)->firstOrFail();

 $guest['room_id'] = $room_id;
 $guest->save();

 $room['guest_id'] = $guest_id;
 $room->save();

}

现在你可以通过调用上面的函数随时更改客人的房间,如下所示:

CheckInUser(2,3);

推荐阅读