数据表一对一关联问题

WBOY
Freigeben: 2016-06-06 20:17:36
Original
1166 Leute haben es durchsucht

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

}</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>class Profile extends Model
    public function user()
    {
        return $this->belongsTo(User::class);
    }
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

回复内容:

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

}</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>class Profile extends Model
    public function user()
    {
        return $this->belongsTo(User::class);
    }
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

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

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage