源码目录在\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Relations下
关系:一对多(One To Many)
场景:每篇博客都有若干条评论,每条评论只属于一篇博客
先定义两个Model,这里为了突出主要矛盾,删除了Model中部分无关代码
1
2
3
4
5
6
7
8
9
10
11
12
|
namespace
App;
use
Illuminate\Database\Eloquent\Model;
class
Post
extends
Model
{
protected
$table
=
'posts'
;
public
function
Comments()
{
return
$this
->hasMany(
'App\Comment'
,
'PostID'
,
'CommentID'
);
}
}
|
以上是博客Post的模型,接下来是评论Comment的模型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
namespace
App;
use
Illuminate\Database\Eloquent\Model;
class
Comment
extends
Model
{
protected
$table
=
'comments'
;
public
function
Comment()
{
//
}
public
function
Post()
{
return
$this
->belongsTo(
'App\Post'
,
'CommentID'
,
'PostID'
);
}
}
|
控制器里:
1
2
3
4
5
6
7
8
|
$articles
=Post::where(
'id'
,
'>'
,
'50'
)->where(
'id'
,
'<'
,
'52'
)->get();
foreach
(
$articles
as
$a
){
//echo $a->id;
$comments
=
$a
->Comments;
foreach
(
$comments
as
$c
){
//echo $c->id;
}
}
|
本文为博主原创文章,转载请在明显位置注明出处: http://www.cnblogs.com/sweng
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。