/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Gorder::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); // error_log(print_r($query->from(['users1'=>'kxw_gorder']),1)); //from(['users'=>'kxw_users']) users 是 表kxw_users的别名 $query->joinWith(['users' => function ($query) { $query->from(['users' => 'kxw_users']); }]); // 使得关联字段可以排序 $dataProvider->sort->attributes['users.telephone'] = ['asc' => ['users.telephone' => SORT_ASC], 'desc' => ['users.telephone' => SORT_DESC]]; $dataProvider->sort->attributes['users.create_time'] = ['asc' => ['users.create_time' => SORT_ASC], 'desc' => ['users.create_time' => SORT_DESC]]; $dataProvider->sort->attributes['users.id'] = ['asc' => ['users.id' => SORT_ASC], 'desc' => ['users.id' => SORT_DESC]]; $dataProvider->sort->attributes['users.email'] = ['asc' => ['users.email' => SORT_ASC], 'desc' => ['users.email' => SORT_DESC]]; $this->load($params); //从参数的数据中加载过滤条件 if (!$this->validate()) { //验证 // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'uid' => $this->uid]); $query->andFilterWhere(['like', 'gordernumber', $this->gordernumber])->andFilterWhere(['like', 'gototal', $this->gototal])->andFilterWhere(['like', 'gostatus', $this->gostatus])->andFilterWhere(['like', 'address', $this->address])->andFilterWhere(['like', 'kxw_gorder.create_time', $this->create_time])->andFilterWhere(['like', 'users.telephone', $this->getAttribute('users.telephone')])->andFilterWhere(['like', 'users.create_time', $this->getAttribute('users.create_time')]); return $dataProvider; }
}, 'attribute' => 'create_time'], ['class' => 'yii\\grid\\DataColumn', 'value' => function ($data) { if ($data->pay_time) { return date('Y-m-d H:i:s', $data->pay_time); // 如果是数组数据则为 $data['name'] ,例如,使用 SqlDataProvider 的情形。 } }, 'attribute' => 'pay_time', 'filter' => DatePicker::widget(['addon' => '', 'language' => 'zh-CN', 'name' => 'pay_time ', 'value' => Yii::$app->request->get('pay_time'), 'template' => '{addon}{input}', 'clientOptions' => ['autoclose' => true, 'format' => 'yyyy-mm-dd']])], ['class' => 'yii\\grid\\DataColumn', 'value' => function ($data) { if ($data->finish_time) { return $data->finish_time; // return Yii::$app->formatter->asDate($data->finish_time, 'yyyy-MM-dd'); // 如果是数组数据则为 $data['name'] ,例如,使用 SqlDataProvider 的情形。 } else { return '交易进行中'; } }, 'attribute' => 'finish_time'], 'address', ['class' => 'yii\\grid\\DataColumn', 'attribute' => 'gostatus', 'label' => '订单状态', 'value' => function ($model) { return \app\models\Gorder::get_gostatus1($model->gostatus); }, 'filter' => \app\models\Gorder::get_gostatus()], ['class' => 'yii\\grid\\ActionColumn', 'controller' => 'my', 'template' => '{view}', 'header' => '查看订单详情'], ['class' => 'yii\\grid\\ActionColumn', 'header' => '操作']]]); ?> <?php echo DatePicker::widget(['name' => '', 'value' => '', 'template' => '{addon}{input}', 'clientOptions' => ['autoclose' => true, 'format' => 'yyyy-mm-dd']]); ?> </div> <script> // 用户可点击复选框来选择网格中的一些行。被选择的行可通过调用下面的JavaScript代码来获得: var keys = $('#grid').yiiGridView('getSelectedRows'); //为什么提示 $不存在 // keys 为一个由与被选行相关联的键组成的数组 </script>
/** * Finds the Users model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return Users the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Gorder::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }