我开发了允许所有者创建团队的表单。代码是:
<?php $form = ActiveForm::begin(['id' => 'team-create-form', 'action' => ['site/create-team-form'], 'options' => array('role' => 'form')]);
<div class="col-lg-10 form-group" id="createTeamForm" style="margin-top: 15px;">
<div class="col-lg-4">
<?= $form->field($model, 'team_name',['template' => "{label}\t{input}\n{error}"])->textInput(array('placeholder'=>'Enter team name....')); ?>
</div>
<div class="col-lg-4">
<?= $form->field($model, 'team_description',['template' => "{label}\t{input}\n{error}"])->textInput(array('placeholder'=>'Enter team Description....')); ?>
</div>
<div class="col-lg-2">
<?= Html::submitButton('Submit', ['class' => 'btn btn-danger', 'id' => 'tsubmit', 'style' => 'margin-top: 22.5px; margin-right: 15px;']) ?>
</div>
</div>
我尝试使用上面的代码加载页面,但它显示错误“$ model not defined”。如何解决这个问题。我需要在main-local.php ???
中添加一些东西public function actionLogin()
{
$model = new LoginForm();
$session = Yii::$app->session;
if ($model->load(Yii::$app->request->post()) && $model->login()) {
$collection1 = Yii::$app->mongodb->getCollection('users');
$teamid = $collection1->findOne(array('username' => $model->email_address));
$session->set('id', $teamid['_id']);
$session->set('name', $teamid['name']);
$session->set('username', $model->email_address);
$collection2 = Yii::$app->mongodb->getCollection('teamdashboard');
$teams = $collection2->find(array('admin' => $model->email_address));
$model1 = new TeamCreateForm();
return $this->render('dashboard', ['model'=>$model1, 'teams'=> $teams]);
} elseif($session->isActive){
$username = $session->get('username');
$collection = Yii::$app->mongodb->getCollection('users');
$teams = $collection->findOne(array('username' => $username));
return $this->render('dashboard', ['teams'=>$teams]);
}else{
$this->layout = 'index';
return $this->render('login', ['model' => $model]);
}
}
我已将产品页面重命名为信息中心,以便更好地理解。
现在我跑这个&amp;登录,地址栏网址显示网址:.... / web / index.php?r =网站/登录,而它应该显示url:.... / web / index.php?r = site / dashboard&amp ;向我展示了仪表板的视图。
当我刷新页面时,我将我带回登录...
答案 0 :(得分:0)
您必须将$ model发送到视图。如果您将变量发送给它,视图只会知道变量。
我不知道您对地址栏的意思。地址栏与您发送到视图的内容无关。
修改强>
你的整个思维方式都很奇怪。为什么你会根据这个人是否注册而显示不同的观点?
返回$ this-&gt;渲染('dashboard',['teams'=&gt; $ teams]); 返回$ this-&gt; render('login',['model'=&gt; $ model]);
用户重定向参数以将客户移至另一页。像/ login那样实际显示仪表板的URL是不合逻辑的。
答案 1 :(得分:0)
您是否在仪表板视图中使用$ model?如果你这样做 - 你需要传递它(与登录方式相同)。