PDA

View Full Version : سوال: سوال در مورد ساختار mvc ؟



redhat2
یک شنبه 16 تیر 1392, 20:56 عصر
سلام به دوستان ، یه سوال دارم ، من یه mvc دارم که خوندن url اش به این صورت هست که

controller/action/query که controller داره و action مورد نظر مثلا به این صورت :

category/add که در اینجا Category ، یه کنترلر هست و add هم یه Action ، این ماله زمانی هست که که من میخوام مثلا یک category را ثبت کنم .

حالا من میخوام که کلا Category هام را نشون بدم ، به این صورت :

category/music ( یا سایر category ها ) که در اینجا music یکی از category ها به حساب میاد ، حالا مشکل من اینه که category ، یه کنترلر هست و music یه query و که ما باید این query را بفرستیم به Action ای که ماله category controller هست ، حالا مشکل اینجاست که من اصا Action ای برای این حالت ندارم ، میتونم به این صورت نشونش بدم

category/show/music که در این حالت show میشه action ما ، اما این نوع url به نظر نابخردانه است :لبخند: میشه category/show/music با .htaccess به صورت category/music در آورد بدون اینکه مشکلی تویه خوندن url جود داشته باشه ، یا راه حلی هست که بشه یه همچین حالتی را به وجود آورد ؟؟ ممنون میشم کمک کنید .

rezaonline.net
دوشنبه 17 تیر 1392, 03:05 صبح
میتونی توی لایه روتر هر چیزی رو خودت دلخواه پیاده کنی اما اگه من جای شما بودم همچین کاری میکردم .
اگر اکشن درج نشه اکشن پیشفرض باید استفاده بشه
یعنی index
یعنی دو آدرس
category/index
و
category
یکی هستن .
پس میام توی اکشن index
اینطوری پارامترهارو میگیرم و اینطوری پاس میدم بهش

category/?music

توی اکشن index
اولین کوئری استرینگ میشه اون پارامتری که میخوای

function actionIndex()
{
$param = null;
foreach($_GET as $key=>$val)
{
$param = $key;
break;
}

echo $param; // music
}

redhat2
دوشنبه 17 تیر 1392, 10:33 صبح
میشه htaccess را هم بگید ، چطوری میشه با htaccess اینکارو انجام داد . ؟

rezaonline.net
دوشنبه 17 تیر 1392, 18:48 عصر
htaccess نمیخواد دیگه .
الان این کار میکنه

redhat2
دوشنبه 17 تیر 1392, 19:36 عصر
من دیدم که با htaccess خیلی راحتره ، در کل ممنون ، اگه htaccess رو هم می دونید که بگید ، خیلی خیلی ممنون از وقتی که برای خوندن پست گذاتین .

rezaonline.net
دوشنبه 17 تیر 1392, 19:56 عصر
پس فایل فعلی htaccess رو بذارید چون طبعا الان یک سری رول تعریف شده باید جوری باشه تداخل نداشته باشه.
یه پیشنهاد هم دارم ، کار با فریم ورک codeigniter رو شروع کنید ، اونجا خودتون میتونید روتر رو به دلخواه تنظیم کنید و آدرسهای جالبی در بیارید بدون هیچ مشکلی

sadegh1362
سه شنبه 19 آذر 1392, 15:36 عصر
سلام
چرا یه action برای این کار نمی سازید تا پارامترهای اون مقدار category ها باشن با این کار فقط اسم category رو به ادامه url اضافه می کنید و action اونم category رو فراخونی می کنه .



public function ActionGetCategory($category) {
$showCategory = $obj->modelCategory($category);
$arr = array(
'showCategory' => $showCategory,
);
$this->view->render('category/View_category.php' . $arr);
}
که در اینجا $arr پارامتری است که از مدل دریافت شده و از طرق action برای view فرستاده می شه.