توی این بخش می خوام توضیح بدم در مورد این که چطور میشه یک صفحه ی جدید ساخت که یک فرم داشته باشه و اطلاعات رو از طریق اون از کاربر دریافت کنه.
این فرم اطلاعاتی مانند نام و ایمیل رو دریافت خواهد کرد و بعد از این که دریافت کرد جداگانه اطلاعات رو چاپ خواهد کرد.
طراحی سایت و طراحی وب سایت صفر و وب
کار با فرم ها در yii2[/caption]
ساخت مدل
کلاس مدل خودتون رو باید درmodels/EntryForm.php
ایجاد کنید
<?php namespace app\models; use Yii; use yii\base\Model; class EntryForm extends Model { public $name; public $email; public function rules() { return [ [['name', 'email'], 'required'], ['email', 'email'], ]; } }
- در کد بالا هم name و هم email هر دو از کاربر درخواست شده اند
- ایمیل باید syntax درست داشته باشد
<?php $model = new EntryForm(); $model->name = 'Qiang'; $model->email = 'bad'; if ($model->validate()) { // Good! } else { // Failure! // Use $model->getErrors()
ساخت یک action
حالا شما نیاز دارید که یک action بسازید در site کنترلر برای استفاده از مدل جدید شما :<?php namespace app\controllers; use Yii; use yii\web\Controller; use app\models\EntryForm; class SiteController extends Controller { // ...existing code... public function actionEntry() { $model = new EntryForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { // valid data received in $model // do something meaningful here about $model ... return $this->render('entry-confirm', ['model' => $model]); } else { // either the page is initially displayed or there is some validation error return $this->render('entry', ['model' => $model]); } } }
ساخت Views
در نهایت شما باید بسازید دو فایل ویو به نام هایentry-confirm
, entry
شما باید ذخیره کنید فایل ها رو در آدرس زیر :
views/site/entry-confirm.php
فایل entry-confirm
<?php use yii\helpers\Html; ?> <p>You have entered the following information:</p> <ul> <li><label>Name</label>: <?= Html::encode($model->name) ?></li> <li><label>Email</label>: <?= Html::encode($model->email) ?></li> </ul>و فایل
entry
باید به صورت زیر و در آدرس زیر باشد:
views/site/entry.php
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>نمایش فرم برای نمایش کدهایی که نوشتید باید به آدرس زیر بروید :
http://hostname/index.php?r=site/entry
[caption id="attachment_3082" align="aligncenter" width="1024"]
منبع علمی , اطلاعات کامل تر در : آموزش yii2
طراحی سایت و طراحی وب سایت صفر و وب

- ۹۴/۰۵/۱۲