/**
* 这是“tender”表的模型类。
类 Tender 扩展 \yii\db\ActiveRecord
{
public $manager;
/**
* @inheritdoc
*/
public static function tableName()
{
return 'tender';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name', 'cost'], 'required'],
[['cost'], 'number'],
[['name'], 'string', 'max' => 255],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
'cost' => 'Cost',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getTenderManagers()
{
return $this->hasMany(TenderManager::className(), ['tender_id' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getTenderManagerList()
{
$list = '';
foreach ($this->tenderMaangers as $managers) {
$list .=$managers->manager->name.' ';
}
return $list;
}
}
/**
* TenderSearch 表示关于frontend\models\Tender 的搜索表单背后的模型。
*/
类 TenderSearch 扩展了 Tender {
/**
* @inheritdoc
*/
public function rules() {
return [
[['id'], 'integer'],
[['name', 'manager'], 'safe'],
[['cost'], 'number'],
];
}
/**
* @inheritdoc
*/
public function scenarios() {
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params) {
$query = Tender::find();
$query->joinWith(['tenderManagers.manager']);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$dataProvider->sort->attributes['manager'] = [
'asc' => ['manager.name' => SORT_ASC],
'desc' => ['manager.name' => 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;
}
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'cost' => $this->cost,
]);
$query->andFilterWhere(['like', 'tender.name', $this->name]);
$query->andFilterWhere(['like', 'manager.name', $this->manager]);
return $dataProvider;
}
}
/**
* 这是表“tender_manager”的模型类。 */
类 TenderManager 扩展 \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'tender_maanger';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['tender_id', 'manager_id'], 'required'],
[['tender_id', 'manager_id'], 'integer'],
[['manager_id'], 'exist', 'skipOnError' => true, 'targetClass' => Manager::className(), 'targetAttribute' => ['manager_id' => 'id']],
[['tender_id'], 'exist', 'skipOnError' => true, 'targetClass' => Tender::className(), 'targetAttribute' => ['tender_id' => 'id']],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'tender_id' => 'Tender ID',
'manager_id' => 'Manager ID',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getManager()
{
return $this->hasOne(Manager::className(), ['id' => 'manager_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getTender()
{
return $this->hasOne(Tender::className(), ['id' => 'tender_id']);
}
}
/**
* 这是表“经理”的模型类。 */
类管理器扩展了\yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'manager';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name'], 'required'],
[['name'], 'string', 'max' => 255],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getTenderMaangers()
{
return $this->hasMany(TenderMaanger::className(), ['manager_id' => 'id']);
}
/*这是招标索引文件的网格代码。 */
[
'attribute' => 'manager',
'value' => function($model) {
return $model->getTenderManagerList();
},
],