Laravel的ORM入门
源码目录在\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 未本地化版本许可协议进行许可。