جلسه سوم
خوب تا اینجای کار ارتباط بین کنترلر و ویو رو بررسی کردیم . سئوالی که پیش میاد اینه که خوب که چی؟ چرا ویو رو به صورت مستقیم فراخوانی نکنیم؟
خوب جوابش اینه که برای یه صفحه استاتیک مشکلی نیست که ویو رو مستقیم لود کنیم اما وقتی دسترسی به دیتابیس و سایت داینامیک نیاز باشه دیگه این کار جواب نمیده
برای اینکه بیشتر آشنا بشیم یه مثال میاریم
فایل site.php که ساخته بودیم رو از فلدر کنترلر داخل تکس ادیتور باز می کنیم
محتوای قبلی به این صورت بود:
کد PHP:
<?php
class Site extends Ci_Controller {
function index(){
$this->load->view('home');
}
}
که حالا به این صورت تغییر میدیم:
کد PHP:
<?php
class Site extends Ci_Controller {
function index(){
$data['myvalue'] = 'مقدار فراخوانی از دیتابیس';
$data['my2value'] = 'مقدار دوم فراخوانی از دیتابیس';
$this->load->view('home', $data);
}
}
خوب همین طور که می بینید دو تا data مقدار گذاری کردیم و در خط آخر هم data رو در view فراخوانی کردیم.
حالا توی فایل home.php در فلدر view این مقدارها رو میاریم که نمایش داده بشه:
کد PHP:
<html>
<head>
<title>Codeigniter</title>
</head>
<body>
<p> در این آموزش ارتباط کنترلر و ویو رو بررسی می کنیم</p>
<p><?php echo $myvalue; ?> </p>
<p><?php echo $my2value; ?> </p>
</body>
</html>
خوب حالا آدرس ایندکس http://localhost/ci/site رو داخل مرورگر باز می کنیم و می بینیم که دو خط اضافه شده
این دو خط که اضافه شده همون مقدار myvalue و my2value رو نمایش می ده و هر اطلاعاتی در قسمت استرینگ یعنی روبروی $data در کنترلر قرار بدیم در صفحه نمایش داده میشه که می تونیم مقدار رو از دیتابیس بیاریم.