public function getDefaultParams() { $params = []; // add first project if (array_keys(Project::getProjectsList())) { $params['TodoSearch']['project_id'] = array_keys(Project::getProjectsList())[0]; } return $params; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Project::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $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, 'user_id' => $this->user_id]); $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getProject() { return $this->hasOne(Project::className(), ['id' => 'project_id']); }
public static function getProjectsList() { return ArrayHelper::map(Project::find()->all(), 'id', 'name'); }
/** * Finds the Project model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Project the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Project::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
use yii\helpers\ArrayHelper; use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model deka6pb\simpleTodo\models\Todo */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="todo-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'project_id')->dropDownList(Project::getProjectsList(), ['prompt' => '']); ?> <?php echo $form->field($model, 'user_id')->dropDownList(ArrayHelper::map(User::find()->all(), 'id', 'username'), ['prompt' => '']); ?> <?php echo $form->field($model, 'text')->textarea(['rows' => 6]); ?> <?php echo $form->field($model, 'type')->dropDownList(Todo::getTypeAliases(), ['prompt' => '']); ?> <?php
?> <div class="todo-index"> <h1><?php echo Html::encode($this->title); ?> </h1> <?php //echo $this->render('_search', ['model' => $searchModel]); ?> <div id="w0-filters"> <div class="form-group field-todo-project_id required"> <label class="control-label" for="todo-project_id">Projects</label> <?php echo Html::dropDownList('TodoSearch[project_id]', 'id', Project::getProjectsList(), ['id' => "ajax-select-project_id", 'class' => 'form-control']); ?> </div> </div> <p> <?php echo Html::a('Create Todo', ['create'], ['class' => 'btn btn-success']); ?> </p> <?php Pjax::begin(['id' => 'todoList', 'timeout' => false, 'enablePushState' => false]); ?> <?php echo $this->render('_grid', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); ?>