با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته به آموزش Logging در CakePHP پرداختیم. در این جلسه و در ادامه کار با این فرم ورک آموزش مدیریت فرم ها در CakePHP را به علاقمندان این دوره ارائه می نماییم.
CakePHP تگ های مختلفی را برای ترسیم فرم های HTML می کند.
مانند بسیاری از چارچوب های PHP دیگر، عناصر اصلی HTML نیز با استفاده از CakePHP تولید می شوند.
در ادامه توابع مختلفی برای تولید عناصر HTML معرفی شده اند.
از توابع زیر برای تولید گزینه های انتخاب شده استفاده می شود:
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | array | ||
توضیحات | یک array از عناصر OPTION / OPTGROUP فرمت را باز می گرداند |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | عنصر SELECT FORMATED | ||
توضیحات | یک عنصر SELECT فرمت را باز می گرداند. |
سیتنکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | تگ های دکمه HTML. | ||
توضیحات | تگ <button> را ایجاد می کند. نوع ویژگی پیش فرض به نوع = “submit“. شما می توانید با استفاده از [$ options [‘type’ آن را به مقدار دیگری تغییر دهید. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | یک متن HTML که عنصر را وارد می نماید. | ||
توضیحات | یک چک باکس widget ورودی را می سازد. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | یک FORM tag فرمت شده | ||
توضیحات | عنصر HTML FORM را باز می گرداند. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | ورودی فایل تولید شده. | ||
توضیحات | ورودی فایل تولید شده. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | ورودی پنهان تولید شده. | ||
توضیحات | یک فیلد ورودی مخفی ایجاد می کند. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | ویجت فرم تکمیل شده. | ||
توضیحات | عنصر ورودی فرم را با تگ و wrapper div تولید می کند. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | مجموعه ویجت رادیویی کامل شده. | ||
توضیخات | مجموعه ای از ویدجت های رادیویی را ایجاد می کند. به طور پیش فرض یک legend و fieldset را ایجاد می نماید. برای کنترل این گزینه از $ options استفاده کنید. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | یک دکمه HTML submit | ||
توضیحات | عنصر دکمه ارسال را ایجاد می کند. این روش عناصر <input /> را تولید می کند که می تواند برای ارسال و استفاده از گزینه های $ استفاده شود. تحویل تصویر را می توان با تهیه یک مسیر تصویر برای $ caption ایجاد کرد. |
سینتکس | مثال :
| ||
پارامترها |
| ||
بازگردانی | ایجاد یک عنصر HTML text input element. | ||
توضیحات | ویجت textarea را ایجاد می کند. |
تغییر زیر را در فایل config/routes.php همانطور که در کد زیر نشان داده است اعمال نمایید.
config/routes.php
1 2 3 4 5 6 7 8 9 10 11 | <?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('register',['controller'=>'Registrations','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل RegistrationController.php در src/Controller/RegistrationController.php بسازید و سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Controller/RegistrationController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php namespace App\Controller; use App\Controller\AppController; class RegistrationsController extends AppController{ public function index(){ $country = array('India','United State of America','United Kingdom'); $this->set('country',$country); $gender = array('Male','Female'); $this->set('gender',$gender); } } ?> |
یک دایرکتوری Registrations در rc/Template ایجاد کنید و یک View file زیر دایرکتوری فراخوانی شده index.ctp بسازید و سپس کد زیر را در آن فایل کننده کپی کنید.
src/Template/Registrations/index.ctp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php echo $this->Form->create("Registrations",array('url'=>'/register')); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->input('password'); echo '<label for="country">Country</label>'; echo $this->Form->select('country',$country); echo '<label for="gender">Gender</label>'; echo $this->Form->radio('gender',$gender); echo '<label for="address">Address</label>'; echo $this->Form->textarea('address'); echo $this->Form->file('profilepic'); echo '<div>'.$this->Form->checkbox('terms'). '<label for="country">Terms &Conditions</label></div>'; echo $this->Form->button('Submit'); echo $this->Form->end(); ?> |
مثال بالا را با مراجعه به URL زیر اجرا نمایید.
پس از اجرا، خروجی زیر را دریافت خواهید کرد.
در این جلسه به آموزش مدیریت فرم ها در CakePHP پرداختیم.
در جلسه بعد با آموزش Internationalization سازی در CakePHP همراه شما خواهیم بود.
با پی وی لرن همراه باشید.