我想在教程中建立一对多的关系。
~~~ 一对多
一对多关系的一个例子是“有很多”评论的博客文章。我们可以这样建模这种关系:
class Post extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}
~~~
所以我想制作一个模型帖子(连接到表格“帖子”)和一个模型评论(连接到表'评论')。我在phpMyAdmin中创建表而不是迁移(因为我在在线服务器上没有SSH支持)。评论表有一列'posts_id'。
我可以使用......
$comments = Post::find(1)->comments;
..没有在phpmyadmin中定义两个表之间的外键关系?
如果答案是肯定的。
我应该在我的“评论”表格中创建一个列名“post_id”或类似的东西,或者其他东西可以使用吗?就像你使用普通外键一样?
答案 0 :(得分:1)
您不必在MySQL端显式声明外键,但至少要创建一个post_id
列,Laravel将将其用作外键。
当然,您可以根据需要命名此列,并在关系声明中指定它:
class Post extends Eloquent {
public function comments()
{
return $this->hasMany('Comment', 'post_primary_key');
}
}
您还可以在PHPMyAdmin中将此列声明为外键,以提高数据库的健壮性,但这不是Laravel业务。