Laravel5.1 框架模型多态关联用法实例分析
本文实例讲述了Laravel5.1 框架模型多态关联用法。分享给大家供大家参考,具体如下:
什么是多态关联? 一个例子你就明白了:好比如说评论 它可以属于视频类 也可以属于文章类,当有个需求是 从评论表中取到视频类的数据,这就需要用到多态关联了。
简单的一句话总结:一张表对应两张表。
1 实现多态关联
1.1 文章表的结构
public function up() { Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body');$table->timestamps(); }); }
1.2 视频表结构
public function up() { Schema::create('videos', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('description'); $table->timestamps(); }); }
1.3 评论表结构
public function up() { Schema::create('comments', function (Blueprint $table) { $table->increments('id'); $table->text('content'); $table->integer('item_id'); $table->string('item_type'); $table->timestamps(); }); }
↑ 这里需要指定 item_id 和 item_type 单一介绍一下 item_type 它主要是区别关联于那张表的 我们这里它只有两个值:App\Article 或 App\Video。
1.4 编写多态关联
Article 和 Video:
public function comments() { /** * 第二个参数:如果你的前缀是item_ 那么就写item 如果是别的就写别的。 * 第三个参数:item_type * 第四个参数:item_id * 第五个参数:关联到那个表的键 * (以上除了第二个参数都可以省略) */ return $this->morphMany(Comment::class, 'item', 'item_type', 'item_id', 'id'); }
Comment:
public function video() { /** * 三个参数都可以省略 不过K建议你还是写全 */ return $this->morphTo('item', 'item_type', 'item_id'); }
使用:
Route::get('/', function () { $video = App\Video::find(8); foreach ($video->comments as $comment) { echo $comment->id . ": " . $comment->item_type; } });
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
上一篇:PHP变量作用域(全局变量&局部变量)&global&static关键字
栏 目:PHP编程
本文标题:Laravel5.1 框架模型多态关联用法实例分析
本文地址:https://www.xiuzhanwang.com/a1/PHPbiancheng/10965.html
您可能感兴趣的文章
- 01-11thinkphp框架类库扩展操作示例
- 01-11关于Yii2框架跑脚本时内存泄漏问题的分析与解决
- 01-11php 实现简单的登录功能示例【基于thinkPHP框架】
- 01-11Laravel框架Blade模板简介及模板继承用法分析
- 01-11Laravel框架基础语法与知识点整理【模板变量、输出、include引入
- 01-11Laravel框架Eloquent ORM删除数据操作示例
- 01-11Laravel框架Eloquent ORM修改数据操作示例
- 01-11Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
- 01-11laravel5.1框架下的批量赋值实现方法分析
- 01-11laravel5.5框架的上传图片功能实例分析【仅传到服务器端】
阅读排行
本栏相关
- 04-02php本站才可以请求数据 php本地数据库
- 04-02关于txt数据库php的信息
- 04-02php打印请求数据 php打印输出结果
- 04-02网页里php操作数据库 php网页例子
- 04-02php插入数据库为乱码 php连接数据库乱
- 04-02php数据库地址 phpstudy 数据库
- 04-02php数据库数据相加 php数据库添加数据
- 04-02数据权限架构思路php 数据权限设计方
- 04-02php数据库输入变量 php里输出数据库数
- 04-02php如何用导入数据 php用来导入其他文
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11ajax实现页面的局部加载
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法实例总结