后盾网lavarel视频项目---模型一对多关联简单实例
后盾网lavarel视频项目---模型一对多关联简单实例
一、总结
一句话总结:
在模型中定义一个方法来设置一对多关联:return $this->hasMany(Video::class);
<?php namespace App\Model; use Illuminate\Database\Eloquent\Model; class Lesson extends Model
{
/**
* 与视频表模型的一对多关联
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function videos(){
return $this->hasMany(Video::class);
}
}
1、控制器中怎么取设置了一对多的模型的数据?
先找到lesson数据(Lesson::find(1)),然后找到一对多设置(->videos()),最后取数据(->get()):$d=Lesson::find(1)->videos()->get();
public function create()
{
$d=Lesson::find(1)->videos()->get();
dd($d->toArray());
return view('admin.lesson.create');
}
2、toArray方法将集合数据转成数组?
$d=Lesson::find(1)->videos()->get(); dd($d->toArray());
public function create()
{
$d=Lesson::find(1)->videos()->get();
dd($d->toArray());
return view('admin.lesson.create');
}
二、模型一对多关联简单实例
1、数据表
lessons表中一条记录对应videos表中多条记录
lessons表
videos表
2、模型
app/Model/Video.php
<?php namespace App\Model; use Illuminate\Database\Eloquent\Model; class Video extends Model
{
protected $guarded=[];
}
app/Model/Lesson.php
<?php namespace App\Model; use Illuminate\Database\Eloquent\Model; class Lesson extends Model
{
/**
* 与视频表模型的一对多关联
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function videos(){
return $this->hasMany(Video::class);
}
}
第10行:一对多设置的核心代码
lavarel参考手册位置:https://learnku.com/docs/laravel/5.7/eloquent-relationships/2295#one-to-many
3、控制器
app/Http/Controllers/Admin/LessonController.php
public function create()
{
$d=Lesson::find(1)->videos()->get();
dd($d->toArray());
return view('admin.lesson.create');
}
第3行:videos方法是Lesson模型中定义的
第4行:toArray方法将数据集转成数组
4、结果
成功获得需要的两条数据
后盾网lavarel视频项目---模型一对多关联简单实例的更多相关文章
- 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- 后盾网lavarel视频项目---4、lavarel和vue都是{{}}表示变量,如何解决冲突
后盾网lavarel视频项目---4.lavarel和vue都是{{}}表示变量,如何解决冲突 一.总结 一句话总结: @{{videos}}:@符号表示lavarel不处理:textarea nam ...
- 后盾网lavarel视频项目---lavarel用户认证实例
后盾网lavarel视频项目---lavarel用户认证实例 一.总结 一句话总结: 主要是用的Auth认证,所以配置是配置的auth(config/auth.php),控制器中调用也是用的Auth( ...
- 后盾网lavarel视频项目---1、数据迁移
后盾网lavarel视频项目---1.数据迁移 一.总结 一句话总结: 1.lavarel的数据迁移比较简单,就是用php来创建数据表 2.创建迁移文件:php artisan make:migrat ...
- 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...
- 后盾网lavarel视频项目---lavarel中的tinker是什么
后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...
- 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用
后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...
- 后盾网lavarel视频项目---图片上传
后盾网lavarel视频项目---图片上传 一.总结 一句话总结: 前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单 public function uploader(R ...
随机推荐
- Stream 分布式数据流的轻量级异步快照
1. 概述 分布式有状态流处理支持在云中部署和执行大规模连续计算,主要针对低延迟和高吞吐量.这种模式的一个最根本的挑战就是在可能的失败情况下提供处理保证.现有方法依赖于可用于故障恢复的周期性全局状态快 ...
- 01 Redis基础
NoSQL 学名(not only sql) 特点: 存储结构与mysql这一种关系型数据库完全不同,nosql存储的是KV形式 nosql有很多产品,都有自己的api和语法,以及业务场景 产品种类: ...
- 第二十二篇 jQuery 学习4 内容和属性
jQuery 内容和属性 这节课,我们学习使用jQuery来控制元素的内容.值和属性. html() 控制所选元素的内容(包括HTML标记): text() 控制所选元素的内容: val() ...
- Jansson库的使用简介
一.Jansson的安装: 二.jansson相关的API: https://jansson.readthedocs.io/en/latest/apiref.html#c.json_t string ...
- kubernetes如何访问pod服务
一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...
- 04-spring框架—— Spring 集成 MyBatis
将 MyBatis与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory 对象交由 Spring来管理.所以,该整合,只需要将 SqlSessionFactory 的对象 ...
- 02bag模板
cost->体积 weight->价值 hdu2844 可达/不可达 #include <stdio.h> #include <algorithm> ...
- Android编程使用httpHelper不执行错误-20171017
解决方法:将显示等代码(例如setText()和setAdapter()等方法)从主函数onCreate()中移到httpHelper.get()函数中: 原因:有可能是主线程运行的较快,而连接服 ...
- Javascript引擎
注入了 浏览器对象模型BOM, 文档对象模型DOM
- shell知识点(二)
Shell 中的数组 Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: 方式2: arr=(value1 value2 value3) (这种方式带值) ...