wuyuxifeng

wuyuxifeng

这家伙有点懒,还没写个性签名!

  • 财富值254
  • 威望值30
  • 总积分854

个人信息

  • 回复了 的回答

    你参考一下吧:

        public function actionAs() {
            $authors = \app\models\Author::find()
                ->joinWith('blogs as b')
                ->where(['b.isDeleted' => 0])
    //            ->where(['blog.isDeleted' => 0])//此句报错,应使用别名b,而不能使用表名全称blog
                ->orderBy(['b.id'=>SORT_DESC])
                ->all();
            // $sql="select author.* from author left join blog on blog.authorid=author.id where blog.isDeleted=0";//对筛选出来的结果会自动合并同类项
            return $this->render('as',['authors'=>$authors]);
        }
    

    不一样,你这没有viaTable,没有中间关系表

  • 回复了 的回答
    $query->joinWith(['orders o'])->orderBy('o.id');
    

    排序的字段不在主表中

  • 我来详细的说明下这个问题:
    有三张表:
    t_product 产品表,有字段 id
    t_r_product_tag 产品标签关系表,有字段 product_id,tag_id
    t_lib_tag 标签表,有字段 id,rank
    排序使用 tag.rank
    有如下定义:

    function getTags(){
        return $this->hasMany(Tag::className() ,['id'=>'tag_id'])->viaTable("{{%r_product_tag}}",['product_id'=>'id']) ;
    }
    

    查询:

    $product =Product::find()->alias('p')->where(['p.id'=>25])->joinWith(['tags t'])->orderBy('t.rank desc')->one();
    

    取得产品的全部的标签:$product->tags ,
    debug看到,执行的全部sql如下:

    
    SELECT	SELECT `p`.* FROM `t_product` `p` LEFT JOIN `t_r_product_tag` ON `p`.`id` = `t_r_product_tag`.`product_id` LEFT JOIN `t_lib_tag` `t` ON `t_r_product_tag`.`tag_id` = `t`.`id` WHERE `p`.`no`='111100025' ORDER BY `t`.`rank` DESC
    
    SELECT	SELECT * FROM `t_r_product_tag` WHERE `product_id`='25'
    
    SELECT	SELECT * FROM `t_lib_tag` `t` WHERE `id` IN ('64', '47', '69', '68', '62', '55', '54', '53', '63', '52')
    

    看最后一个sql,始终是用in语句, 而in语句是没有排序的,第一个sql 中的 t.rank desc 就没有意义了

  • 原生的标签好啊,

    <?php foreach($list as $item):?>
    <?php endforeach?>
    

    看看smarty:

    {foreach from=$list key=$key item=$item}
    {/foreach}
    

    这不是在造轮子么,有嘛区别?,模版引擎很无聊,很无聊

  • 提出了问题
    viaTable 排序问题
  • 2017-01-06 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的说说
    http://www.oschina.net/project/top_cn_2016?sort=1 我大yii呢,怎么没参选
    散熊,就散熊
  • 赞了说说
    http://www.oschina.net/project/top_cn_2016?sort=1 我大yii呢,怎么没参选
  • 发表了说说
    http://www.oschina.net/project/top_cn_2016?sort=1 我大yii呢,怎么没参选
  • 回复了 的说说
    hello 请教各位一个困扰我很久的问题: 我用yii2框架做了3个网站,这三个网站分属公司不同的服务器,三个网站的layouts/main.php完全一样,如何能让这三个不同域名的网站共用这一个main.php呢?
    一台主服务器提供一个接口,三台服务器(含主)共同调用接口+缓存 的方式。接口输出当然不是layout,而是layout中共有的部分。
主管 等级规则
854/1000
资料完整度
20/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

7

Ta的访客

31