2018-04-22 19:26:12 2096次浏览 2条回答 0 悬赏 500 金钱

一张用户表,一张文章表,一个点赞表,查询文章列表->关联作者的详细信息->关联当登陆的用户是否点赞,用ActiveDataProvider做分页。请问用继承ActiveRecord类的几个Model怎么写?

补充:我用其他办法能实现,比如用joinWith查询点赞表用文章id和当前登录id做link。我想知道的是,能不能用AR类去查,这样看起来比较优雅

  • 回答于 2018-04-23 09:02 举报
    1 条回复
    回复于 2018-05-01 18:10 回复

    文档我看过了,假如A(文章)关联B(点赞),那么只查出当前登录用户所看的文章是否点赞该如何操作?

  • 回答于 2018-05-02 08:52 举报

    文章 articles
    点赞 like

    $articles->getlike()->where(['state' = 已点赞])->all();
    

    在文章的http://www.yiichina.com/doc/guide/2.0/db-active-record#dynamic-relational-query
    处,你也好意思说看过了? 有些问题不是我们不想回答,而是学者的态度根本就不想回答。

    2 条回复
    回复于 2018-05-03 14:56 回复

    我要得到的数据是一个列表
    例如:
    [
    {

    "title": "文章0",
    ...,
    isLike: 0 // 或者1
    

    },
    {

    "title": "文章1",
    ...,
    isLike: 0 // 或者1
    

    },
    {

    "title": "文章2",
    ...,
    isLike: 0 // 或者1
    

    }
    ]

    也就是说我想用类似:Articles::find()->with('like')->all();这种形式得到那个数据,你写的getLike只能应用于:Articles::findOne(1)->getLike();
    你如果会就好好回答,如果不会,大可以不用回答,不用来这训我,你习惯性的把别人当成白痴吗?

    回复于 2018-05-03 17:01 回复

    $articles->find()->getlike()->where(['state' = 已点赞])->all();
    就是你想要的答案,问题是确实你没仔细看文档,点出你的错误,你就多看几遍,小样。
    findOne与all他的区别是一个是单,一个是多,跟getLike有毛关系。你按这个写,你会发现出来的就是你想要的数据结构。

    第一个回复,都指出让你看具体的文档的描点处了,注意指定描点处。。。。
    你回复看过了,看过个毛线,看过来会再来问这问题吗,我没认为你仔细看。
    指出你的问题,你确以

    你如果会就好好回答,如果不会,大可以不用回答,不用来这训我,你习惯性的把别人当成白痴吗?
    

    你就这么接受不了现实吗, 你就接受不了你确实对待一个问题没有仔细的看文档就直接闭着眼就提问吗。知道什么是技艺性提问吗。
    反而认为我这给你的解决问题是错误的。怎么不去思考下,是不是自已漏掉了什么?

    看我刻薄的态度,你知道什么态度对你最没用,你有思考过吗。

    有人能给我碰到问题指出建设性解决方案,打我都不还手,这就是学者的态度。小样长长记性,对你以后有帮助。

    , , 觉得很赞
您需要登录后才可以回答。登录 | 立即注册
数字派
总监

数字派 北京

注册时间:2016-04-19
最后登录:2023-03-07
在线时长:52小时34分
  • 粉丝10
  • 金钱1515
  • 威望10
  • 积分2135

热门问题