search

Home  >  Q&A  >  body text

php - 数据表一对一关联问题

class User extends Authenticatable
{
    public function profile()
    {
        return $this->hasOne(Profile::class);
    }

}
class Profile extends Model
    public function user()
    {
        return $this->belongsTo(User::class);
    }
    }

上面是一张user表和profile表的Model,两张表一对一关系,当用户登录后,可以创建他的profile,然后提交。
可是,第二次访问这个创建profile的表单页,也能提交成功,这哪里是一对一,这不是一对多么!是哪里有错,还是模型中进行一对一关联后,要保证profile只有一条记录,在控制器中还要进行判断?

PHP中文网PHP中文网2819 days ago398

reply all(4)I'll reply

  • 迷茫

    迷茫2017-04-10 16:53:44

    要是能创建多个,那就不是一对一了呗
    数据库是人设计的,又不是死的,需求是什么样的就设计成什么样的,如果是一对一,那就不能提交两个,如果能提交多个,那就是一对多

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 16:53:44

    提交后是重新覆盖那一条数据就可以一对一咯。

    reply
    0
  • 黄舟

    黄舟2017-04-10 16:53:44

    首先查库看是否在profile已经有 该用户的记录了,如果有则update 更新 否则 insert插入记录

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 16:53:44

    这个是你业务设计的问题,你需要在业务中去控制,如果出现了不符合一对一的情况,可以认为出现了数据不一致。

    reply
    0
  • Cancelreply