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\Model;

class Post extends Model{    //

   protected $table = "posts";   public $primaryKey = ‘id‘;

   public function user()   {      return $this->belongsTo("App\Models\User","user_id",‘id‘);   }

   public function comments()   {      return $this->hasMany(‘App\Models\Comment‘,‘post_id‘,‘id‘)->orderBy("created_at",‘desc‘);   }}

comment模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model{

   protected $table = ‘comments‘;

   public $primaryKey = ‘id‘;

   public function post()   {      return $this->belongsTo("App\Models\Post",‘post_id‘,‘id‘);   }

   public function user()   {      return $this->belongsTo("App\Models\User",‘user_id‘,‘id‘);   }}

最后 文章模型 想获取评论和评论用户 查找到post对象
@if(!empty($post->comments))    @foreach($post->comments as $item)        <ul class="list-group" style="padding-bottom:10px;">            <li class="list-group-item">                <h5>{{ $post->created_at }} by {{ $item->user->name }}</h5>                <div>                    {{ $item->content }}                </div>            </li>        </ul>    @endforeach    @endif


原文地址:https://www.cnblogs.com/php-linux/p/11689009.html

时间: 2024-10-10 10:33:03

laravel模型关联评论的相关文章

laravel 模型关联之(多对多)

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

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

一对一是 用户表和用户信息表 一个用户对应一个用户信息 user 对应 userinfo user 中存入的是邮箱密码之类的,userinfo存入的是姓名年龄之类的. 在控制器中取数据  从userinfo取数据带上user信息   $userinfos = Userinfo::with(' user ')-paginate( 5 ); 取出所有用户信息分为每页5条 在视图里面遍历输出每个用户的信息,例如   取姓名 :$userinfo->name   取user表中的数据   $userin

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

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

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

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

Laravel模型的一些小技巧

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

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'); }

关于THINKPHP5模型关联的初步理解

初步理解的意思是,使用最常用的关联模型,然后可以正常运行 还是打个比方 文章表  和文章分类表 一个文章分类可以有多个文章  所以  文章分类模型和文章建立 hasMany的关联 而文章和文章分类表则建立belongto关联 注:belongto和hasMany第二个参数外键的定义请仔细查看教程 关联建立后,可以使用with所以查询关联,with是预载入的时候最常用 比如要查找文章的列表,想顺便展示文章的分类名 $list=Article::with('articleType')->where(

laravel中的模型关联之(一对一)

一对一 一对一的关联关系就相当于,赞和文章之间的关系,一个用户只能赞一次一个文章,只能和文章发生一次关系, 用户和赞的文章是唯一的一份,这里举得是判断用户是否赞过某个文章 一个参数都是你要获取的模型,第二个参数就是获取的模型的外键,第三个参数是当前模型的主键 这里用的是判断当前登陆的用户是否赞过,就是判断是否存在,如果存在就显示取消赞,没有那就是显示赞 原文地址:https://www.cnblogs.com/wlphp/p/8214816.html

laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完

开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位: php artisan make:model Article -m -m 是 --migration 的缩写,告知 Artisan 在创建模型同时创建与之对应的迁移文件(我使用的是 Laradock 作为开发环境): 当然,还需要编辑默认生成的迁移文件: use Illuminate\Support\Facades\Schema; use Illuminate\Database