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