返回期间关系变量变化的变量(代码片段)

author author     2023-05-12     513

关键词:

我用Laravel。我和帖子和评论之间有关系。我有$post,我想得到相关的$comments只有值published设置为true。在控制器我有:

$post     = Post::find($id);
$comments = $post->comments->where('published', 1)->get();

这里变量comments看起来很合适,但是当我这样做时:

return [
    'comments' => $comments,
    'post'     => $post,
];

我有来自db的所有注释,并在一个数组中发布连接注释。例如

$post: 
id  24
title   "lorem"
body  "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis explicabo molestias obcaecati placeat vero. Alias aliquid consectetur, deserunt ducimus iure magnam minus molestias neque pariatur quidem sint temporibus totam vitae."
user_id 2
published   1
created_at  "2018-12-03 12:14:30"
updated_at  "2019-03-29 10:08:26"
comments    [
    1 [ ... ]
    2 [ ... ]
    n [ ... ] 
]

$comments 
 1 [ ... ]
 2 [ ... ]
 n [ ... ] 

那我在哪里弄错了?为什么会改变?

model Comment.php

public function post()

    return $this->belongsTo(Post::class);


public function scopePublished($query)

    return $query->where('published', 1);

post.php中

public function comments()

    return $this->hasMany(Comment::class);

答案

试试这个

$post     = Post::with(['comments' => function($q) 
                     $q->where('published', 1); // or $q->published();
                 ])
                ->find($id);

你可以阅读Where with relationship

在刀片文件中,您可以使用发布和评论

 dd($post)  //get post
 dd($post->comments)  //get post related commnets 
另一答案
$comments = $post->comments->where('published', 1)->get();

检查已发布的帖子设置为1.要获取任何帖子的已发布评论,请在Post.php中添加新关系,如下所示:

public function publishedComments()

    return $this->comments()->where('published', 1);

然后,您可以在控制器中使用它

$comments = $post->publishedComments()->get();

block与局部变量的关系(代码片段)

Block语法返回值(^Block名字)(参数)=^(参数) return返回值 void(^TesTblock)(id)=^(idobj)NSLog(@"========>id:%@",obj);;TesTblock(@"xx");//block声明int 查看详情

未完成类之间的各种关系(代码片段)

一、依赖关系假设A类的变化引起了B类的变化,就说明B依赖于A。在UML图中,用虚线箭头表示类之间的依赖关系。依赖关系有下面具体三种情况。1、A类是B类中的局部变量,这时,A的变化能够引起B变化,说明B依赖A.2、A类是B类方... 查看详情

block与局部变量的关系(代码片段)

Block语法返回值(^Block名字)(参数)=^(参数) return返回值 void(^TesTblock)(id)=^(idobj)NSLog(@"========>id:%@",obj);;TesTblock(@"xx");//block声明int(^Sum)(int,int)=^(inta,intb)returna+b;;//Block使用NSLog(... 查看详情

spss回归分析(代码片段)

...握回归分析。实验内容:  1.相关分析。线性回归相关关系指一一对应的确定关系。设有两个变量x和y,变量y随变量x一起变化,并完全依赖于x,当变量x取某个数值时,y依确定的关系取相应的值,则称 y是x的函数,记为y=f(... 查看详情

centosshell中的变量(代码片段)

shell中的变量变量的介绍变量即变化的量,核心是”变“与”量“二字,变即变化,量即衡量状态。量:是记录现实世界当中的某种状态<br>变:指的是记录的状态是可以发送变化的name=wshage=22如何使用变量变量名赋值符号变... 查看详情

1.变量常量(代码片段)

一:变量1.什么是变量  变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别等等2.为什么要有变量  为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的  详细地说:    ... 查看详情

pytorch学习-2:变量(variable)和激励函数(代码片段)

...呢,自然就是Torch的Tensor咯.如果用一个Variable进行计算,那返回的也是一个同类型的Variable.1.1.1定义变量importtorchfromtorch.autogradimp 查看详情

pytorch学习-2:变量(variable)和激励函数(代码片段)

...呢,自然就是Torch的Tensor咯.如果用一个Variable进行计算,那返回的也是一个同类型的Variable.1.1.1定义变量importtorchfromtorch.autogradimp 查看详情

变量及变量内存管理(代码片段)

 1.变量的定义,什么是变量?量:衡量/记录现实世界中的状态,让计算机能够像人一样去识别世间万物。(很抽象,可以简单理解为一种状态)变:现实世界中的状态是会发生改变的。2.为什么要有变量?因为程序执行的本质... 查看详情

js如何监听一个变量的变化(代码片段)

基于get和setvara=watchValue:0;varlastTimeValue=a.watchValue;Object.defineProperty(a,‘watchValue‘,get:function()console.log(‘get:‘+watchValue);returnwatchValue;,set:function(value)watchValue=value;i 查看详情

内科大机器学习框架课程重点内容笔记(代码片段)

...机器学习框架课程的考试复习内容二.内容1.变量间的相互关系:(1)确定性关系或函数关系:研究的是确定现象非随机变量间的关系。(2)相关关系或统计依赖关系:研究的是非确定现象随机变量间的关系。2.回归分析是研究一个变... 查看详情

函数和对象的关系(代码片段)

...性。对象可以作为参数传递给函数。对象可以作为函数的返回值。对象能够具有对象创建和分配属性。JavaScript中函数拥有对象的所有能力:通过字面量创建。functiontest()可以赋值给变量、数组项、或其他对象的属性。1vartest=functi... 查看详情

第三天变量及数据类型基础(代码片段)

什么是变量?从字面理解上就是变化着的量变:现实世界中的状态是发生改变的量:记录现实世界中的状态,让计算机像人一样去识别时间万物为什么要有变量?从唯物主义角度讲,世间万物一定是变化着的,肯定有一个变量来... 查看详情

基础补充——(代码片段)

...互在Python3中,用户输入input的任何值,都存成字符串二、变量1、什么是变量变量是变化的量,用来保存程序执行的状态以及状态的变化2、变量定义规范#1.变量名只能是:字母、数字或下划线的任意组合#2.变量名的第一个字符不... 查看详情

r语言线性回归(代码片段)

...析是一个广泛使用的统计工具,用于建立两个变量之间的关系模型。这些变量之一称为预测变量,其值通过实验收集。另一个变量称为响应变量,其值来自预测变量。在线性回归中,这两个变量通过一个等式相关联,其中这两个... 查看详情

apache在发布请求时返回403错误,输入变量计数保持不变,值发生变化

】apache在发布请求时返回403错误,输入变量计数保持不变,值发生变化【英文标题】:apachereturn403erroronpostrequest,inputvariablecountremainsame,therevalueschange【发布时间】:2020-03-0722:05:40【问题描述】:我有一个代码(用codeigniter编写)... 查看详情

go语言变量(代码片段)

...量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。形式参数形式参数会作为函数的局部变量来使用。变量声明第一种,指定变量类型,声明后若不赋值,使用默认值。varnamestring第二种,根据值... 查看详情

浅谈javascript数据类型变量内存之间的关系,文末有图解(代码片段)

一、变量是没有类型的在JavaScript中,定义变量的方法是“var变量名=变量值”,无论这个变量要给他赋值为一个数字、字符串还是数组,他的类型都不需要声明。也就是说如果我只声明了一个变量“vara”,而没有给... 查看详情