首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

thinkphp5.1 关联预载入的一个 bug?

  •  1
     
  •   lp7631010 · 78 天前 · 723 次点击
    这是一个创建于 78 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面这段是从官方文档上复制的:

    如果要指定属性查询,可以使用:

    $list = User::field('id,name')->with(['profile'=>function($query){ $query->field('email,phone'); }])->select([1,2,3]);


    凭良心讲,这段代码是你们有测试过的么,确定闭包里的 field 起到了查询指定字段的作用么。。还是说这是将来要支持的写法,提前放进了文档里面???心累,失望,有碰到相同问题的没

    12 回复  |  直到 2018-07-04 10:53:24 +08:00
        1
    torbrowserbridge   78 天前 via Android
    新项目,老老实实用 laravel 不好么。何必找虐呢。
        2
    lp7631010   78 天前
    问题是已经在用了啊 而且其他同事之前都是在用 tp3.2 一下子跨到 laravel 项目进度也是个问题啊
        3
    chinvo   78 天前
    请问你在使用的 TP 版本?
        4
    lp7631010   78 天前
    @chinvo 5.1.17
        5
    changwei   78 天前
    你直接去提 issue 呗。。。
        6
    jayin   78 天前
    升级下。。
        7
    chinvo   78 天前
    @lp7631010 #4 刚刚在组里问了下,还没有负责这部分的人给反馈,你可以试试升级到 5.1.18 或者 dev-master 版本。
        8
    lp7631010   77 天前
    @chinvo 更新到 5.1.18 也并没有效果,而且对闭包里的 query 做任何链式操作都不会有任何影响,调用不存在的方法也不会报错,好像根本就没有走进去
        9
    topthink   77 天前
    抱歉 这是官方文档的失误,我已经修正文档了,因为指定属性的时候必须包含关联键。其实没有必要这样操作,规范的建议是在输出的时候使用 hidden 隐藏。
        10
    lp7631010   77 天前
    @topthink 问题是多对多的话 预载入包含关联键怎么包含 不在一个表 ; 而且那个 hidden 对查出来的关联数据无效,按文档上操作也没用哦
        11
    lp7631010   77 天前
    这样子看来列表展示关联数据的查询只能通过 db 类的拼接 join 去完成了
        12
    topthink   77 天前
    @lp7631010 关于关联操作部分 建议首先阅读下官方的掌握数据库和模型的教程 会说的比较详细一些
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   649 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 20:22 · PVG 04:22 · LAX 13:22 · JFK 16:22
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1