- جمعه 25 اسفند 1396 ساعت 13:07
- 3.1.9
- در حال تکمیل
- فعال
یک ویو به طور ساده، یک صفحه یا یک فرگمنت (Fragment) یعنی بخشی از صفحه مانند هدر، فوتر، سایدبار و ... است. در واقع درصورتی که نیاز به سلسله مراتب در ویوها داشته باشید، ویوها انعطافپذیری لازم برای جاسازی در سایر ویوها را دارند. ویوها در کدایگنایتر فایلهایی برای نمایش محتوا هستند. ویوها هرگز به صورت مستقیم فراخوانی نمی شوند، آنها باید توسط کنترلر لود شوند. فراموش نکنید که در چارچوب MVC مانند پلیس ترافیک عمل می کند و در نتیجه مسئول نمایش یک ویو خاص است. اگر کنترلرها در کدایگنایتر را هنوز نخوانده اید، قبل از خواندن ادامه مطالب این پست، حتما آن را مطالعه کنید. به کنترلر نمونهای که در پست کنترلرها در کدایگنایتر ساختید، یک ویو اضافه کنید.
ساخت ویو
فایلی با نام blogview.php بسازید و کد زیر را داخل آن بنویسید.
<html>
<head>
<title>My Blog</title>
</head>
<body>
<h1>Welcome to my Blog!</h1>
</body>
</html>
سپس این فایل را در دایرکتوری application/views/ directory ذخیره کنید.
لود ویو
برای لود یک فایل ویو خاص، از متد زیر استفاده کنید.
$this->load->view('name');
آرگومنت name، نام فایل ویو است.
فایل کنترلر را که قبلا با نام Blog.php ساختهاید باید ویرایش کنید و برای لود ویو، کد زیر را جایگزین محتوای آن کنید:
<?php
class Blog extends CI_Controller {
public function index()
{
$this->load->view('blogview');
}
}
برای مشاهده سایت با کمک این ویو، به آدرس زیر بروید.
example.com/index.php/blog/
بارگذاری چند ویو
کدایگنایتر به صورت هوشمندانه از چندین بار فراخوانی متد $this->load->view()
از داخل یک کنترلر، پشتیبانی میکند. اگر این متد بیش از یکبار فراخوانی شود، محتوای ویوها را به یکدیگر اضافه میکند. مثلا اگر می خواهید از چندین ویو برای نمایش هدر، منو، محتوا و فوتر استفاده کنید اکشن index در کنترلر Page به صورت زیر خواهد بود.
<?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');
}
}
کاربرد این روش زمانی است که قرار است بخشی از محتوای همه صفحات ثابت باشد، بخشهایی مانند هدر، فوتر و سایدبار متداولترین بخشهایی هستند که در اکثر قالب ها یکسان هستند.
ذخیره ویوها داخل سابدایرکتوریها
فایلهای ویو برای سازماندهی و مرتبسازی بهتر میتوانند در سابدایرکتوریها ذخیره شوند. اگر از این روش استفاده کنید، باید نام سابدایرکتوری را نیز در کنار نام فایلها بکار ببرید.
$this->load->view('directory_name/file_name');
ارسال داده به ویو
داده هایی که از کنترلر به ویو ارسال میشوند باید به صورت آرایه یا آبجکت باشند و به عنوان پارامتر دوم متد view استفاده شوند. برای مثال، ارسال آرایه از کنترلر به ویو به صورت زیر:
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
$this->load->view('blogview', $data);
و ارسال آبجکت به ویو به صورت زیر است:
$data = new Someclass();
$this->load->view('blogview', $data);
فایل کنترلر خود را باز کنید و محتوای زیر را در آن قرار دهید.
<?php
class Blog extends CI_Controller {
public function index()
{
$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";
$this->load->view('blogview', $data);
}
}
فایل ویو را باز کنید و مقادیر داخل تگهای title
و h1
را با متغییرها جایگزین کنید. کلید آرایههای کنترلر را به عنوان نام متغییرها در ویو استفاده کنید.
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $heading;?></h1>
</body>
</html>
با لود URL در مرورگر، باید مقادیر هر خانه آرایه، جایگزین متغییرها شود.
ساخت حلقه
داده های ارسال شده از کنترلر به ویو، تنها محدود به آرایه یک بعدی نیست، بلکه با ارسال آرایه چند بعدی در ویو نیز به جای چندین متغییر، آرایههایی چند بعدی خواهید داشت. برای مثال، در صورت دریافت دادهها از دیتابیس، معمولا در ویو آرایههایی چند بعدی خواهید داشت. برای مثال، کنترلر را باز کرده و محتوای زیر را جایگزین محتوای آن کنید:
<?php
class 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);
}
}
فایل ویو را باز کرده و در آن یک حلقه بسازید:
<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>
بازگرداندن ویو به عنوان داده
متد view پارامتر سومی نیز دارد که اختیاری است و اجازه میدهد تا رفتار این متد را به گونهای تغییر دهید که به جای ارسال ویوها به مرورگر، آنها را به صورت استرینگ برگرداند. در صورتی که میخواهید قبل از ارسال ویو به مرورگر، آن را مورد پردازش قرار دهید، این روش مفید است. برای اینکار باید پارامتر سوم را TRUE
قرار دهید، مقدار پیش فرض این پارامتر FALSE
است که در نتیجه ویو را به مرورگر ارسال میکند. فراموش نکنید که در صورتی که می خواهید ویو را پردازش کنید باید مقدار آن را در یک متغییر ذخیره کنید.
$string = $this->load->view('myfile', '', TRUE);
سایر پستهای داکیومنت
- به کدایگنایتر خوش آمدید
- نصب
- بررسی اجمالی
- شروع به استفاده از کدایگنایتر
- کدایگنایتر در یک نگاه
- فیچرهای کدایگنایتر
- فلوچارت اپلیکیشن
- مدل ویو کنترلر
- اهداف طراحی و معماری
- خودآموز
- مشارکت در کدایگنایتر
- نوشتن مستندات کدایگنایتر در صف ترجمه
- گواهی مبدأ توسعه دهنده 1.1 در صف ترجمه
- مباحث کلی
- URLها در کدایگنایتر
- کنترلرها
- نامهای رزرو شده
- ویوها
- مدلها
- هلپرفانکشنها
- استفاده از لایبرریهای کدایگنایتر
- ساخت لایبرری
- استفاده از درایورهای کدایگنایتر
- ساخت درایور
- ساخت کلاسهای هسته سیستم
- ساخت کلاسهای کمکی
- هوکها - توسعه هسته فریمورک
- بارگذاری خودکار ریسورسها
- فانکشنهای عمومی
- فانکشنهای سازگاری
- مسیریابی URI
- هندل کردن خطاها
- کش کردن صفحات وب
- ارزیابی و تجزیه و تحلیل عملکرد اپلیکیشن
- اجرای کدایگنایتر به وسیله خط فرمان
- مدیریت چندین اپلیکیشن
- هندل کردن محیطهای چندگانه
- سینتکس جایگزین PHP برای فایلهای ویو
- Security در صف ترجمه
- راهنمای کدنویسی در PHP
- لایبرریها در صف ترجمه
- کلاس بنچمارک
- درایور کش در صف ترجمه
- Calendaring Class در صف ترجمه
- Shopping Cart Class در صف ترجمه
- Config Class در صف ترجمه
- Email Class در صف ترجمه
- Encrypt Class در صف ترجمه
- Encryption Library در صف ترجمه
- File Uploading Class در صف ترجمه
- Form Validation در صف ترجمه
- FTP Class در صف ترجمه
- Image Manipulation Class در صف ترجمه
- Image Manipulation Class در صف ترجمه
- Javascript Class در صف ترجمه
- کلاس زبان
- Loader Class در صف ترجمه
- کلاس مایگریشن
- Output Class در صف ترجمه
- Pagination Class در صف ترجمه
- Template Parser Class در صف ترجمه
- Security Class در صف ترجمه
- Session Library در صف ترجمه
- HTML Table Class در صف ترجمه
- Trackback Class در صف ترجمه
- کلاس تایپوگرافی در صف ترجمه
- Unit Testing Class در صف ترجمه
- URI Class در صف ترجمه
- User Agent Class در صف ترجمه
- XML-RPC and XML-RPC Server Classes در صف ترجمه
- کلاس انکود کردن آرشیو Zip در صف ترجمه
- رفرنس دیتابیس در صف ترجمه
- شروع سریع دیتابیس: کد نمونه
- پیکربندی دیتابیس در صف ترجمه
- Connecting to your Database در صف ترجمه
- Queries در صف ترجمه
- Generating Query Results در صف ترجمه
- Query Helper Methods در صف ترجمه
- Query Builder Class در صف ترجمه
- Transactions در صف ترجمه
- Database Metadata در صف ترجمه
- فراخوانی سفارشی فانکشن
- Database Caching Class در صف ترجمه
- Database Forge Class در صف ترجمه
- Database Utility Class در صف ترجمه
- DB Driver Reference در صف ترجمه
- هلپرفانکشنها
- هلپرفانکشن Array
- هلپرفانکشن CAPTCHA در صف ترجمه
- هلپرفانکشن Cookie
- Date Helper در صف ترجمه
- هلپرفانکشن Directory
- Download Helper در صف ترجمه
- Email Helper در صف ترجمه
- File Helper در صف ترجمه
- هلپرفانکشن Form در صف ترجمه
- HTML Helper در صف ترجمه
- Inflector Helper در صف ترجمه
- هلپرفانکشن Language
- هلپرفانکشن Number
- Path Helper در صف ترجمه
- Security Helper در صف ترجمه
- Smiley Helper در صف ترجمه
- هلپرفانکشن String
- Text Helper در صف ترجمه
- Typography Helper در صف ترجمه
- URL Helper در صف ترجمه
- XML Helper در صف ترجمه