每个值都将被视为选择数据库的记录,但是被称为id的PrimaryKey则不会。为什么?如何获取为PrimaryKey选择的记录? 这是SearchModel:
<?php
namespace frontend\modules\bewerber\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use frontend\modules\bewerber\models\Bewerber;
class BewerberSearch extends Bewerber {
public $choice_date;
public function rules() {
return [
[['id', 'id_person', 'id_person_rekrutiert_von', 'id_abrechnungsweg', 'id_kanal', 'id_bewerberquelle', 'id_ba_xml_gelernter_beruf_1', 'id_ba_xml_gelernter_beruf_2', 'id_ba_xml_gelernter_beruf_3', 'umkreis', 'avgs_betrag', 'wunschgehalt_brutto', 'wochenstunden_minimum', 'wochenstunden_maximum', 'angelegt_von', 'aktualisiert_von'], 'integer'],
[['arbeitsuchend_seit', 'ablaufdatum_avgs', 'beurteilung_fachlich', 'beurteilung_persoenlich', 'sonstiges', 'verfuegbar_ab', 'gesuchte_positionen', 'anschreiben', 'bemerkung_intern', 'kandidat_seit', 'zuletzt_deaktiviert_am', 'angelegt_am', 'aktualisiert_am'], 'safe'],
[['avgs', 'arbeitsumfang_vollzeit', 'arbeitsumfang_teilzeit', 'arbeitszeit_bueroueblich', 'arbeitszeit_vormittag', 'arbeitszeit_nachmittag', 'arbeitszeit_abend', 'arbeitszeit_nacht', 'arbeitszeit_wochenende', 'schichtbereitschaft', 'quereinsteiger', 'zeitarbeit', 'pkw', 'fuehrerschein_pkw', 'fuehrerschein_lkw', 'fuehrerschein_omnibus', 'reisebereitschaft', 'kandidat', 'veroeffentlichen_bewerberboerse', 'kontakt_halten', 'aktiv', 'optimistic_lock'], 'boolean'],
[['choice_date'], 'boolean'],
];
}
public function scenarios() {
return Model::scenarios();
}
public function search($params) {
$query = Bewerber::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if ($this->choice_date == 0) {
$query->andFilterWhere(['<=', 'arbeitsuchend_seit', $this->arbeitsuchend_seit]);
$query->andFilterWhere(['<=', 'kandidat_seit', $this->kandidat_seit]);
$query->andFilterWhere(['<=', 'ablaufdatum_avgs', $this->ablaufdatum_avgs]);
$query->andFilterWhere(['<=', 'verfuegbar_ab', $this->verfuegbar_ab]);
$query->andFilterWhere(['<=', 'angelegt_am', $this->angelegt_am]);
$query->andFilterWhere(['<=', 'aktualisiert_am', $this->aktualisiert_am]);
} else {
$query->andFilterWhere(['>=', 'arbeitsuchend_seit', $this->arbeitsuchend_seit]);
$query->andFilterWhere(['>=', 'kandidat_seit', $this->kandidat_seit]);
$query->andFilterWhere(['>=', 'ablaufdatum_avgs', $this->ablaufdatum_avgs]);
$query->andFilterWhere(['>=', 'verfuegbar_ab', $this->verfuegbar_ab]);
$query->andFilterWhere(['>=', 'angelegt_am', $this->angelegt_am]);
$query->andFilterWhere(['>=', 'aktualisiert_am', $this->aktualisiert_am]);
}
/* Searching for id is not regarded.Why? */
$query->andFilterWhere(['<=', 'id', $this->id]);
$query->andFilterWhere(['<=', 'wunschgehalt_brutto', $this->wunschgehalt_brutto]);
return $dataProvider;
}
}
这里是控制器:
public function actionIndex() {
$searchModel = new BewerberSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++