ellen

ellen

饿霸

  • 财富值415
  • 威望值10
  • 总积分1075

个人信息

  • 2015-04-15 已签到
    连续签到3天,获得了15个金钱
  • 解决啦!

    
    class OrdersSearch extends Orders
    {
          public function search($params)
          {
                $query->joinWith(['products']);//==>关联最终要的数据所在的表
          }
    }
    
    class Orders extends \yii\db\ActiveRecord
    {
    	public function getProducts()
    	{
    		return $this->hasOne(Products::className(), ['ID' => 'ProductID'])
    				    ->viaTable('ProductInfo', ['DeviceID' => 'ID']);
                    //===>这边的'ProductInfo'是表名
    	}
    }
    
    
    
  • 提出了问题
    GridView 多个表关联
  • 回复了 的回答

    PJAXYII自带这个功能。
    代码如下:

    <?php Pjax::begin();
        echo GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'toolbar' => [
                ['content' =>
                    Html::a('<i class="glyphicon glyphicon-repeat"></i>',
                        [''],
                        [
                            'data-pjax' => 1,
                            'class' => 'btn btn-default',
                            'title' => Yii::t('app', 'Reset Grid')
                        ])
                ],
                '{export}',
            ],
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],
                [
                    'class' => \kartik\grid\ActionColumn::className(),
                ],
            ],
            'responsive' => true,
            'hover' => true,
            'condensed' => true,
            'floatHeader' => true,
    
            'panel' => [
                'showFooter' => false
            ],
        ]);
        Pjax::end(); ?>
    

    谢谢,问下这个我加了,点击GridView自带的删除按钮还是跳转了

  • 回复了 的回答

    你A表跟C表都有BID,那么就有2种关联情况
    一种是从A-C,另一种是A-B-C
    如果简单的话就从relations那里直接通过A表的bID跟C表的bID产生关联关系,直接输出a->c->cName;

  • [
    	'attribute' => 'DeliverDate',
    	//'format' => ['date', 'php:Y.m.d'],  =====》这个暂时去掉就不限制,写了后value里面判断后null会出现默认值
    	'value' => function ($searchModel) {
    		if($searchModel->DeliverDate==Null){
    			return '';
    		}else{
    			return $searchModel->DeliverDate;
    		}
    	},
    	
    ],
    
  • 回复了 的回答

    你A表跟C表都有BID,那么就有2种关联情况
    一种是从A-C,另一种是A-B-C
    如果简单的话就从relations那里直接通过A表的bID跟C表的bID产生关联关系,直接输出a->c->cName;

    谢谢 刚改了下表关系,现在这样的我该怎样去关联啊

  • 回复了 的回答

    'type'改为'raw',
    然后value那里用三元表达式判断一下应该能解决你这个问题

    谢谢啊,新版本好像没有'type'=>'raw'

  • 2015-04-14 已签到
    连续签到2天,获得了10个金钱
  • 提出了问题
    GridView 字段多个表关联
经理 等级规则
1075/2000
资料完整度
30/100
用户活跃度
10/100

Ta的关注

12

Ta的粉丝

13

Ta的访客

30