如何在yii2中动态添加detailView中的行数

时间:2017-06-11 06:31:15

标签: yii2 detailview

$dataProviderDetails = new ActiveDataProvider([

                 'query'=> $details
                            ->select(['pk_int_particular_id','vchr_particular_name','int_amount'])
                            ->from('tbl_payroll_details')
                            ->join( 'INNER JOIN', 'tbl_salary_particular', 'tbl_salary_particular.pk_int_particular_id = tbl_payroll_details.fk_salary_particular_id')
                            ->where(['fk_int_payroll_id'=> $id])
                            ->All(),
                            ]);


        $payroll = $dataProviderDetails->query;    
        return $this->render('view', [
               //'model' => $model, 
               'payroll' => $payroll  
        ]);

此连接包含结果集

Array ( [0] => Array ( [pk_int_particular_id] => 1 [vchr_particular_name] => basicSalary [int_amount] => 10000 ) [1] => Array ( [pk_int_particular_id] => 2 [vchr_particular_name] => HRA [int_amount] => 200 ) [2] => Array ( [pk_int_particular_id] => 3 [vchr_particular_name] => PA [int_amount] => 500 ) [3] => Array ( [pk_int_particular_id] => 4 [vchr_particular_name] => professionaltax [int_amount] => 1000 ) )

我在详细信息中打印了结果$payroll[0][vchr_particular_name]

但我想知道如何使用数组索引动态地在detailView中添加行数。有可能吗?

1 个答案:

答案 0 :(得分:0)

如果您只需要行总数,则可以在查询中使用 count()而不是全部

->select(['pk_int_particular_id', 'vchr_particular_name', 'int_amount'])
  ->from('tbl_payroll_details')
  ->join( 'INNER JOIN',  'tbl_salary_particular',  'tbl_salary_particular.pk_int_particular_id = tbl_payroll_details.fk_salary_particular_id')
  ->where(['fk_int_payroll_id'=> $id])
  ->count()

但请记住,在 activeDataProvider 中,这应该已经由对象本身计算并存储在< totalCount '属性或者您可以使用 activeDataProvider getTotalCount()方法获取它

 $dataProviderDetails->totalCount;
 $dataProviderDetails->getTotalCount();