رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
route
#1
در کدایگنایتر و احتمالا دیگر فریم ورک ها ، قسمتی داره که بشه route مشخص کرد . به این شکل که url را خوانده و به فولدر ، کنترلر و اکشن مورد نظر میرود .
$route['contact'] = 'admin/contact';
$route['contact/(:any)'] = 'admin/contact';
$route['edit-class/(:num)'] = 'admin/classlist/edit_class';

میخواستم بدونم در این پروژه ی mvc به چه شکل باید این کار رو انجام بدیم ؟
پاسخ
تشکر شده توسط:
#2
توی تمام فریمورکها چنین قابلیتی وجود داره. برای اینکار کافیه یک فایل برای مسیرها بگذارین که اونها رو به این شکل برمیگردونه (مثال) :
return array(
    'contact' => 'admin/contact',
    'contact/<name:.*> => 'admin/contact',
    'edit-class/<id:\d+>' => 'admin/classlist/edit_class',
);

حالا توی router این فایل رو اینطوری میخونید:
$routes = require_once dirname(__FILE__) . '/../config/routes.php';
الان شما توی آرایه routes$ مسیرها رو دارین. کافیه با یکم تلاش و استفاده از توابعی مثل explode و preg_match و... مقادیر رو از URL استخراج کنید و کارهای لازم رو انجام بدین. این همون روشی هست که توی فریمورک Yii داره استفاده میشه و برای اطلاع از نحوه کارش میتونید کد کلاس yii/framework/web/CUrlManager.php رو بررسی کنید.
پاسخ
تشکر شده توسط: mary , sm_pakdel




کاربران در حال بازدید این موضوع: 1 مهمان