记录一次laravel 模型关联 一对一, 一对多 取数据

一对一是 用户表和用户信息表 一个用户对应一个用户信息

user 对应 userinfo

user 中存入的是邮箱密码之类的,userinfo存入的是姓名年龄之类的。

在控制器中取数据  从userinfo取数据带上user信息   $userinfos = Userinfo::with(‘ user ‘)-paginate( 5 );

取出所有用户信息分为每页5条

在视图里面遍历输出每个用户的信息,例如   取姓名 :$userinfo->name   取user表中的数据   $userinfo->user->email;  因为是一对一的关系,所以直接使用userinfo的user属性调用email属性(在userinfo中找,找不到后在user中找)

第二个是文章和评论关联,因为一个文章对应多个评论,所以在后面要输出评论,我们要取遍历以下所有评论才能取出数值

post 对应 comment

在控制器中取某一篇文章数据,$id为文章的id      $post = Post :: where(‘ id ‘ , $id )->with(‘ comment ‘)->first();

这样子就取到了这边文章的数据和这篇文章对应的评论,在评论表里必须又post_id ,把$post传递给视图

在视图中取数据   例如: 取文章内容  $post->content     取评论,因为文章对应多个评论,所以先进行判断是否又评论,有的话遍历并输出

@if ( $post->comment )

  @foreach( $post->comment as $value)

    {{ $value->content }}    //这里取到了每一条评论

  @endforeach

@endif

原文地址:https://www.cnblogs.com/muwu/p/9017461.html

时间: 2024-11-10 20:59:11

记录一次laravel 模型关联 一对一, 一对多 取数据的相关文章

laravel 模型关联之(多对多)

多对多 多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题, 而且多对都必须有一个表是他们之间的关联关系表PostTopic Post表和Topic表之间没有直接的关联,而且通过关联关系表关联的 如果说你用的是一多多来获取一个专题的文章的时候, Post模型对应的是PostTopic,但是你只能获取到文章的ID,反而又麻烦 第一个参数就是要获取的模型(Posts) 第二个参数就是把这两个模型关联起来的关联关系表(TopicPost) 第三个参数就是TopicPost表中和当

laravel模型关联评论

用户模型 public function show(Post $post,LogManager $log){ $post->load("comments"); //这种方式是预加载 ,如果没有这句,就是下面在模板加载的时候才进行模型查询 return view("post.show",compact('post'));} post模型 <?php namespace App\Models; use Illuminate\Database\Eloquent

TP中的模型关联的多对多关系

TP5中完全推翻了3.2的做法,不再使用原来的查询语句,比如select,join之类的条件查询.而是使用模型关联,一对多和多对多的关系进行关联.方便用户调用数据,减少代码的编写量. 下面直接开始上代码: role.php(model层) class Role extends Model{ public function Nodes() { return $this->belongsToMany('Node','RoleAuthorization','node_id','role_id'); }

多对多 一对一 一对多 主从 关联 字典

 "订单"表中的主键.  "产品"表中的主键.  一个订单可以包含多种产品 ...   ... 且每种产品可以出现在多个订单上.   课程文本 在多对多关系中,一个表中的一个记录与第二个表中的多个记录相关,第二个表中的一个记录与第一个表中的多个记录相关. 这种类型的关系需要一个称为连接表的第三个表.连接表包含另两个表中的主键,并将它们用作其外键. 例如,"订单"表和"产品"表具有多对多关系.一个订单可以包含多种产品,每种产品可

laravel中关联模型查询选择性的字段

在使用 Laravel 的关联查询中,我们经常使用 with 方法来避免 1+N 查询,但是 with 会将目标关联的所有字段全部查询出来,对于有强迫症的PHPer来说,当然是不允许发生的. 第一种方法:在模型里就写好,固定死 方便简洁,但是不能针对不同的需求去关联不同的字段,一旦在模型关联中写死,所有的关联的字段都是一样的 在user模型里,写关联函数,一对多.此模型放在APP\Models下,默认放在App下 1 public function hasPost(){ 2 return $th

laravel框架关联的模型怎么加入筛选条件

比如:商品模型关联评论模型,要给商品模型家条件很简单,在控制器里直接写就行了,但是要给关联的评论模型加筛选条件,该怎么加 protected $table = "wd_yylm_goods"; public function evaluate() { return $this->hasOne('App\Http\Model\EvaluateModel','good_id','id')->where('status',0); } 在商品模型里面定义关联关系的时候,后面加入wh

【Hibernate步步为营】--双向关联一对一映射详解(二)

很不好意思,有两天时间没有更新博客文章了,不写文章的日子还真是感觉很空洞啊,养成了写文章的恶习想改也改不掉啊.说点题外话,前两天收到一位朋友的私信,邀请笔者写一篇有关OWS的文章,用来研究图标工具的一种技术,很荣幸收到这位朋友的邀请,但是因为这几天开发的项目着急上线所以暂时没有时间去研究,只能等这周末了,利用周末的时间来研究然后更新类似的技术文章. 回到文章的正题,上篇文章讨论了双向主键关联,它其实是一对一主键关联的一种特殊情况,想要实现双向的关联就必须在映射文件的两端同时配置<one-to-o

Laravel模型的一些小技巧

隐藏字段 我在项目遇到的情景是,当使用关联模型获取数据的时候,比如产品模型和图片模型,通过产品模型来关联图片模型,这个时候我只需要图片模型的图片地址字段,其他的字段不让产品模型看到:以这个场景为实例,我们通过代码实现 我们发现上图红色框里的内容,你不想显示其他字段,就在hidden数组里填写目标字段,这样写的一个弊端,其他模型在调用图片模型的时候,这些字段也不会显示,他是全局的. 构建读取器 我们为什么要创建读取器?我们在我们正常的业务中,比如要修改我们读取字段数据,我们传统的做法是将数据获取出

【Hibernate步步为营】--单向关联一对一映射(一)

上篇文章对多对一的关联映射做了详细的分析,它在实现上可以有两种方式,并且这两种方式实现也很简单,关键是标签<many-to-one>的使用,它分别指明了多端和一端的映射关系,这种映射关系既是对象模型中的聚合关系.接下来继续讨论关联映射. 一.唯一外键 唯一外键说的是数据库表中的每一行的外键唯一对应着另一张表中的主键,也就是说一个表的主键作为另一张表的外键,并且它们之间的关系是唯一的,这种反应到关系模型中如下图所示: 上图的两个实体表,分别为人和身份证,很明显的一个人对应着一个身份证.身份证作为