<已解决>如何在查询时或查询结果集中设置预加载关联关系的$visible属性

想请教一下: 如何在查询时或查询结果集中设置预加载关联关系的$visible属性

问题描述:

假设有以下两个模型

class Author extends Model
{
    public function articles()
    {
        return $this->hasMany(Article::class);
    }
}
class Article extends Model
{
    //假设 有id, author_id, content, view_count, created_at, updated_at等字段
    public function author()
    {
        return $this->belongTo(Author::class);
    }
}

在按照author进行分页时 想要指定预加载关联关系的visible 要怎么设置? 只能遍历一遍吗?

$authors=Author::with("article")->paginate();
foreach($authors as $author){
    $author->articles->makeVisible(["id","view_count"]);
}
  • 上面举的authorarticle的例子可能并不是很恰当, 主要是想说明大概的问题
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
$authors = Author::with("article:id, author_id, content, view_count")->paginate();

必须包含关联字段

3年前 评论
讨论数量: 2
$authors = Author::with("article:id, author_id, content, view_count")->paginate();

必须包含关联字段

3年前 评论

可以用 resources 或者 with('article:id,view_count') 指定字段可以达到相同的效果

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!