繁体   English   中英

没有实际外键的一对多关系

[英]One-to-many relationship without actual foreign key

我想像本教程中那样建立一对多关系。

~~~一对多

一对多关系的一个示例是“有很多”评论的博客帖子。 我们可以像这样对这种关系建模:

class Post extends Eloquent {

    public function comments()
    {
        return $this->hasMany('Comment');
    }

}

~~~

所以我想做一个模型发布(连接到表“ posts”)和一个模型注释(连接到表“ comments”)。 我正在phpMyAdmin中创建表,而不是进行迁移(因为在线服务器上没有SSH支持)。 注释表中有一列“ posts_id”。

我可以用吗 ...

$comments = Post::find(1)->comments;

..没有在phpmyadmin中的两个表之间定义外键关系?

如果答案为是。

我应该在“注释”表中输入列名“ post_id”还是类似的名称,还是要使其起作用? 就像您将使用普通外键一样?

您不必在MySQL端显式声明外键,但至少必须创建一个post_id列,该列将被Laravel用作外键。

当然,您可以根据需要命名此列,并在关系的声明中进行指定:

class Post extends Eloquent {

    public function comments()
    {
        return $this->hasMany('Comment', 'post_primary_key');
    }

}

您还可以在PHPMyAdmin中将此列声明为外键,以提高数据库的健壮性,但这不是Laravel的事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM