eloquent是laravel的原始activerecord是实现的,建立在laravel的fluent query builder之上的,所以eloquent类和fluent类是一样的,能实现复杂的sql语句和非常直观表达出的表与表之间的关系。本文就以此展开学习,希望对大家有所帮助。
一个用户可能有多个文章,一个文章是某个用户书写的,这就是关系。同样文章中可能包含多个 TAG,而一个 TAG 可能关联多个文章。
在项目中,我们已经有了 User.php,也就是用户模型,查看一下,相当简单。我们希望直接使用 $user->articles() 的形式获取全部文章,让我们修改 user 模型:
1 2 3 |
|
但是我们仅仅完成了关系中的一端,让我们来处理另一端。我们希望的形式是 $article->user() ,让我们修改 article 模型。
1 2 3 |
|
在我们的数据库中,文章模型没有用户的外键,我们需要设置,修改 create_article_table.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
因为我们只是在开发阶段,还没有上线运行,我们可以直接修改数据库迁移文件,回滚然后迁移即可,但是如果上线运行的话,应该新建一个迁移。
1 2 3 4 5 6 7 8 9 10 11 |
|
现在让我们使用 tinker 来创建一个用户。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
现在我们需要新发布的文章和用户关联,我们暂时先修改 form_partial.blade.php 来隐藏一个用户id,只是暂时:
复制代码 代码如下:
{{--临时处理--}}
{!! Form::hidden('user_id', 1) !!}
同时要修改模型的 $fillabel 属性,以便我们的 Mass Assisment。
1 2 3 4 5 6 |
|
OK,添加一个文章。我们使用 tinker 来查看一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
相关推荐:
Laravel 关联模型由于名称一致性导致的问题 laravel 视频教程 thinkphp php laravel
laravel 学习笔记 —— 神奇的服务容器 laravel下载 yii php laravel
以上就是学习Laravel5的Eloquent 关系的详细内容,更多请关注php中文网其它相关文章!