Yii Bootstrap TbGridView を使用して、CSqlDataProvider から DataProvider を表示しています。ただし、値を画面に表示することはできません。何が起こったのかわかりません。これが私のコードです:
コントローラーページ:
$model = new ReportOptionForm('search');
$sql = 'SELECT c.client_id as "ProspectID", c.name as "ProspectName", count(t.activity_id) as "CallCount", c.created_on as "ProspectDate", con.name as "Consultant"';
$sql .= ' FROM clients c LEFT OUTER JOIN consultants con ON c.CIC = con.con_id LEFT OUTER JOIN client_activities t ON c.client_id = t.client_id';
$sql .= ' WHERE c.status = '.Client::TYPE_PROSPECT;
if(!($con_id == ''))
{
$sql .= ' AND c.CIC ='. $con_num;
}
if(!($team == ''))
{
$sql_count .= ' AND con.tm_id = '.$team;
}
if (!($startTs == NULL) && !($endTs == NULL)) {
$sql .= ' AND DATE(c.created_on) between "'.$startTs.'" and "'.$endTs.'"';
}
$sql .= ' GROUP BY c.client_id';
$dataProvider = new CSqlDataProvider($sql, array(
'totalItemCount' => 100,
'keyField' => 'ProspectID',
'sort' => array(
'defaultOrder'=>'ProspectID ASC',
),
'pagination'=>array(
'pageSize'=>$pageSize,
),
));
$render = Yii::app()->request->isAjaxRequest ? 'renderPartial' : 'render';
$this->$render('prospect',array(
'model'=>$model,
'dataProvider'=>$dataProvider,
'pageSize'=>$pageSize,
));
プロスペクト ビュー ページ:
$gridWidget=$this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'report-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'name'=>'No',
'value'=>'$row+1',
'htmlOptions'=>array('style'=>'text-align:center'),
),
array('name'=>'Prospect Date', 'type'=>'raw', 'value'=>$data->ProspectDate),
array('name'=>'Prospect Name', 'type'=>'raw', 'value'=>$data->ProspectName),
'Consultant'
),
));
ローカル サーバーでテストを行います。エラーはありませんが、値は次を使用してループされます。
array('name'=>'Prospect Date', 'type'=>'raw', 'value'=>$data->ProspectDate),
この列の値は表示されません。ただし、「コンサルタント」の列には、値を表示できます。別の問題は、ファイルを実サーバーにアップロードしたときにエラーが発生することです。
Undefined variable: data
ここで、データは$data->ProspectDateを指し ます 誰かがそれを理解するのを手伝ってくれますか? 問題は何ですか?