以下代碼應該搜索日期記錄。但是,不管我點擊,在其他的代碼分支將被處理RadioList似乎不被渲染
<?=$form->field($model, 'choice_date')->radioList(array(0=>'Before',1=>'After'))->label('Please, choose Datesearching!'); ?>
型號:
<?php
namespace backend\models;
use Yii;
use yii\base\Model;
class RadioForm extends Model { // A new Class programmed by Thomas Kipp
public $choice_date;
public function rules() {
return [
['choice_date', 'boolean'],
];
}
}
?>
搜索類:
<?php
namespace backend\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use backend\models\Departments;
class DepartmentsSearch extends Departments {
public function rules() {
return [
[['department_id'], 'integer'],
[['department_name', 'department_created_date', 'department_status', 'companies_company_id', 'branches_branch_id'], 'safe'],
];
}
public function scenarios() {
return Model::scenarios();
}
public function search($params) {
$query = Departments::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) return $dataProvider;
$model = new RadioForm();
$model->load($params);
if ($model->choice_date == true)
$query->andFilterWhere(['<', 'department_created_date', $this->department_created_date]);
else
$query->andFilterWhere(['>', 'department_created_date', $this->department_created_date]);
$query->joinWith('companiesCompany');
$query->joinWith('branchesBranch');
$query->andFilterWhere(['like', 'department_name', $this->department_name])
->andFilterWhere(['like', 'companies.company_name', $this->companies_company_id])
->andFilterWhere(['like', 'branches.branch_name', $this->branches_branch_id])
->andFilterWhere(['like', 'department_status', $this->department_status]);
return $dataProvider;
}
}
P.S:我只是很能影響日期過濾改變特性真/假,比如像這樣:
public $choice_date=true;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
任何想法,如何解決這一問題?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
你是說'if($ model-> choice_date == 0)'總是假? –
準確。這部分永遠不會變成TRUE,所以日期總是會被過濾爲更大!我只是可以影響模型中的過濾,而不是用戶。所以我supose,財產將不會被渲染 – tklustig
這很奇怪,因爲從你的代碼,該部分應該總是返回'true',不管選擇的選項。 –