我有一个帖子模型、一个用户模型和一个评论模型。
我的用户可以发布帖子,也可以评论帖子。
我想得到帖子的评论,但是,我的用户也可以阻止用户。
我的意思是,如果活动用户有一些其他被阻止的用户,并且如果post的评论有这些用户创建的评论,我必须排除他们。
问题来了。
$posts = $user()->posts()->get();
$blockedUserIdentifiers = (array) $viewer->getBlockedUserIdentifiers();
$posts->with(array('comments' => function($query) use ($blockedUserIdentifiers)
{
if( ! empty($blockedUserIdentifiers))
$query->whereNotIn('user_id', $blockedUserIdentifiers);
}))->with('user'); // ? Ups?
我想使用帖子和评论的关系,因为这里的工作还没有完成。但是如果我在posts数组中使用foreach,那么继续使用foreach将非常奇怪;如果我在posts对象上使用foreach,我很难继续。
因为我有阻塞的情况,我不能急于加载太多。
什么是我的情况下的最佳实践,或者,我应该如何添加$注释
结果对象到$post
对象像laravel一样?
或者我如何继续向该结果添加关系结果?
使用with()
对多个关系进行约束。
$posts->with(array('comments' => function($query) use ($blockedUserIdentifiers)
{
// if( ! empty($blockedUserIdentifiers))
// $query->whereNotIn('user_id', $blockedUserIdentifiers);
}, 'comments.user', function($query) use ($blockedUserIdentifiers)
{
// Constraints on the users can go here
if( ! empty($blockedUserIdentifiers))
$query->whereNotIn('id', $blockedUserIdentifiers);
}))->get();
或者在回声的时候做。
foreach($posts as $post) {
// If you want to keep your relationships clean, you can just not echo the post instead
if(array_search($post->user_id, $blockedUserIdentifiers) !== false) {
continue;
}
echo $post->content;
foreach($post->comments as $comment) {
echo $comment->user;
echo $comment->content;
}
}
🕒 岗位/面试时间 美团前端一面/4.24晚 第一次面试,几乎没有准备,被狠狠拷打了
我可能还真面试不过
我有users表,它与vendordetails表有hasOne关系。 vendordetails表包含country_id、state_id和city_id,与Country、State和City模型有归属关系。 vendorDetail.php模型为:- 如果我查询users表,如何获取国家、州和城市的记录。 在这个查询中,它只找到vendordetails表的结果,我还想要country、s
有以下表格结构: 使用者 有很多页 页 属于用户 有许多笔记 笔记 属于用户 为了创造一个音符,我做了: 容易。由于大规模赋值漏洞,我希望避免在注释模型的可填充内部具有外键。代码更改为: 模糊的为了实现这一点,我必须在迁移中使note的user_id为null。这感觉是错误的,因为如果没有用户,便笺就不应该存在。你将如何解决这个问题?
Laravel 4中的RESTful和资源控制器受到限制,即RESTful方法名称必须以get、put、post、patch、delete结尾,而资源控制器必须以index、create、store、show edit、update和destroy结尾。我的问题是,Laravel 5是否也施加了同样的限制?
问题内容: 我正在寻找可以从nodejs访问的git的实现-这样的野兽存在吗? 问题答案: 看起来现在有一些使用git from node的选项: 礼物:用于Git CLI的简单Node.js包装器,带有基于Grit的API(npm / github) node-git:基于grit(npm / github)的node.js git实现 nodegit:libgit2异步本机绑定(npm / g