ویو (Views) در کد ایگنایتر
ویو (Views) در کد ایگنایتر متشکل از فایلهایی می باشد که نمایش را برای کاربران را فراهم می سازد درواقع شما نیاز دارید به نمایش اطلاعات به کاربر مثل سربرگ ، جداول و … که این کار در فایل های view انجام می شود.
توجه داشته باشید که فایلهای view به تنهایی صدا زده نمی شود و شما می بایست حتما در controller فایلهای view را صدا بزنید .به همین منظور به شما توصیه می شود مطالب فصل قبل را به خوبی تسلط داشته باشید.
ساخت view
جهت ساخت view یک فایل ساده htmlرا در آدرس application/views/ بسازید، به طور مثال فایلی با محتوای زیر.
<html> <head> <title>My Blog</title> </head> <body> <h1> Welcome to my Blog! </h1> </body> </html>
بارگزاری view
جهت بارگزاری view در controoler کد زیر را فراخوانی می کنیم.
$this->load->view('name');
Name اسم فایل شما می باشد.
مثال کاربردی ویو (Views) در کد ایگنایتر
۱-فایل کنترلر با محتوای زیر را در آدرس controller/blog.php می سازیم
<?class Blog extends CI_Controller { public function index() { $this->load->view('blogview'); } }
- وحالا فایل view را در آدرس views/blogview.php
- آدرس زیر را فراخوانی می کنیم.
example.com/index.php/blog/
بارگزاری چندین فایل view
برای بارگزاری چندین فایل view تنها کافی است که کد مربوطه را چندین بار صدا بزنیم .
<?php class Page extends CI_Controller { public function index() { $data['page_title'] = 'Your title'; $this->load->view('header'); $this->load->view('menu'); $this->load->view('content', $data); $this->load->view('footer'); } }
در مثال بالا توسط آرایه data مقادیری را به فایل content ارسال کردیم که در آینده به طور کامل شرح می دهسم.
مرتب سازی فایلهای view با استفاده از پوشه بندی
همان گونه که در فصل قبلی مرتب سازی را برای فایلهای کنترلر توضیح دادیم برای فایلهای view هم صدق می کند و شما می توانید همانند دستور زیر استفاده کنید.
$this->load->view('directory_name/file_name');
ارسال مقادیر به فایلهای view
و اما مهمترین چیز در این قسمت ارسال مقادیر به فایلهای view می باشد . در واقع شما بعد از انجام عملیاتها میخواهید طلاعاتی را به قسمت VIEW بفرستید برای نمایش به طور مثال می خواهید آرگومانی را که در کنترلر دریافت نموده اید با عدد ۲ جمع کنید و به فایل VIEW برای چاپ بفرستید. شما می بایست فایل کنترلر را همانند زیر بسازید.
<?php class Page extends CI_Controller { public function index($id) { $data['id'] = $id; $this->load->view('content', $data); } }
همانگونه که می بینید آرایه ای داریم به نام data و همچنین عنصری به نام id ، که مقدار را از آرگومانها که به طور کامل در قسمت کنترلرها توضیح داده شده است ، به contentمی فرستیم و شما در فایل view آن را می توانید چاپ کنید.
<html> <body> <h1> <?php echo $id;?> </h1> </body> </html>
توجه داشته باشید شما برای چاپ مقدار می توانید از فرمت کوتاه شده آن استفاده نمایید.
<?=$id?>
ساخت حلقه در view
فرض کنید ارایه ای متشکل از مقدارهای مختلف را به فایل view می فرستید و می خواهید چاپ کنید ، شما می بایست حلقه ای در فایل ایجاد کرده و مقادیر را چاپ کنید به مثال زیر توجه نمایید.
<?phpclass Blog extends CI_Controller { public function index() { $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); $data['title'] = "My Real Title"; $data['heading'] = "My Real Heading"; $this->load->view('blogview', $data); }}
همانگونه که می بینید در فایل کنترلر آرایه data داریم که در آن ،آرایه ای به نام todo_list داریم و آن را به blogview می فرستیم .
<html> <head> <title><?php echo $title;?></title> </head> <body> <h1> <?php echo $heading;?> </h1> <h3>My Todo List</h3> <ul> <?php foreach ($todo_list as $item):?> <li><?php echo $item;?></li> <?php endforeach;?> </ul> </body> </html>
همانگونه که می بینید با استفاده از یک حلقه forech مقادیر را چاپ می کنیم.
خروجی پذیری view
فکر کنید می خواهید خروجی یک فایل view را داخل متغیری بریزید و چاپ نکنید ، با دستر زیر می توانید این کار را بکنید.
$string = $this->load->view('myfile', '', TRUE);