مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

form های HTML در فریمورک Yii


هنگامی که یک form بر اساس یک مدل است، روش معمول ایجاد این فرم در فریمورک Yii از طریق کلاس yii\widgets\ActiveForm می باشد. در اکثر موارد یک فرم دارای یک مدل مرتبط است که برای اعتبار سنجی داده ها از آن استفاده می شود. اگر مدل داده های پایگاه داده را استخراج می کند و نشان می دهد، پس مدل باید از کلاس ActiveRecord ساخته شود. اگر مدل ورودی های دلخواه را می گیرد، باید از کلاس yii\base\Model ساخته شود.

اجازه دهید یک فرم ثبت نام ایجاد کنیم.

مرحله 1 - داخل پوشه models، یک فایل به نام RegistrationForm.php با کد زیر ایجاد کنید.

<?php
   namespace app\models;
   use Yii;
   use yii\base\Model;
   class RegistrationForm extends Model {
      public $username;
      public $password;
      public $email;
      public $subscriptions;
      public $photos;
      /**
      * @return array customized attribute labels
      */
      public function attributeLabels() {
         return [
            'username' => 'Username',
            'password' => 'Password',
            'email' => 'Email',
            'subscriptions' => 'Subscriptions',
            'photos' => 'Photos',
         ];
      }
   }
?>

ما مدل فرم ثبت نام را با پنج property تعریف کردیم :

  1. username
  2. password
  3. email
  4. subscription
  5. photos

مرحله 2 - برای نمایش این فرم، متد actionRegistration را به کنترلر SiteController اضافه کنید.

public function actionRegistration() {
   $mRegistration = new RegistrationForm();
   return $this->render('registration', ['model' => $mRegistration]);
}

ما نمونه ای از RegistrationForm را ایجاد می کنیم و آنرا به view با نام registration منتقل می کنیم. اکنون زمان آن است که یک view ایجاد کنید.

مرحله 3 - داخل پوشه views/site folder، یک فایل با نام registration.php با کد زیر اضافه کنید.

<?php
   use yii\bootstrap\ActiveForm;
   use yii\bootstrap\Html;
?>
<div class = "row">
   <div class = "col-lg-5">
      <?php $form = ActiveForm::begin(['id' => 'registration-form']); ?>
      <?= $form->field($model, 'username') ?>
      <?= $form->field($model, 'password')->passwordInput() ?>
      <?= $form->field($model, 'email')->input('email') ?>
      <?= $form->field($model, 'photos[]')->fileInput(['multiple'=>'multiple']) ?>
      <?= $form->field($model, 'subscriptions[]')->checkboxList(['a' => 'Item A',
         'b' => 'Item B', 'c' => 'Item C']) ?>
      <div class = "form-group">
         <?= Html::submitButton('Submit', ['class' => 'btn btn-primary',
            'name' => 'registration-button']) ?>
      </div>
      <?php ActiveForm::end(); ?>
   </div>
</div>

آنچه که مشاهده می کنیم بدین صورت است :

تابع ActiveForm::begin() ابتدا فرم را نشان می دهد. همه کدها بین توابع ActiveForm::begin() و ActiveForm::end() در تگ form قرار می گیرد.

برای ایجاد یک فیلد در فرم بایستی با متد ActiveForm::field() را فراخوانی کنید، که تمام تگ های input  و label  را ایجاد می کند. نام inputها به طور خودکار تعیین می شوند.

برای مثال، attribute با نام password  به صورت RegistrationForm[password] خواهد بود.اگر می خواهید یک attribute برای گرفتن یک آرایه، داشته باشید، باید [ ] را به نام attribute اضافه کنید.

 

مرحله 4 - اگر به نوار آدرس مرورگر وبتان بروید و http://localhost:8080/index.php?r=site/registration را وارد کنید، آنچه که مشاهده می کنید مطابق با تصویر زیر است:

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید