توی این بخش می خوام توضیح بدم در مورد این که چطور میشه یک صفحه ی جدید ساخت که یک فرم داشته باشه و اطلاعات رو از طریق اون از کاربر دریافت کنه.
این فرم اطلاعاتی مانند نام و ایمیل رو دریافت خواهد کرد و بعد از این که دریافت کرد جداگانه اطلاعات رو چاپ خواهد کرد.
طراحی سایت و طراحی وب سایت صفر و وب
کار با فرم ها در 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
طراحی سایت و طراحی وب سایت صفر و وب
کار با فرم ها در yii2[/caption]
- ۹۴/۰۵/۱۲