ورود

View Full Version : مشكل در url Manager



shadecute
دوشنبه 19 خرداد 1393, 10:24 صبح
سلام
من براي مديريت صفحات ثابت با Gii يه مدلي به نام استاتيك درست كردم صفحات رو ايجاد ميكنم
تو حالت عادي براي ويو آدرسم اين شكلي ميشه

localhost/test/static/view/1

حالا مي خوام از ويو اين id1 براي مثلا صفحه درباره ما استفاده كنم تو url manager در كانفيگ به اين صورت وارد ميكنم

'aboutme'=>'static/view/1'
وقتي صفحه aboutme رو فراخوني مي كنم

localhost/test/aboutme
اررور 400 ميده your request is invalid
اما وقتي آي دي هم بهش ميدم صفحه لود ميشه

'aboutme/<id:\id+>'=>'static/view/1'
آدرس اينجوري ميشه

localhost/test/aboutme/1
يكم ضايع كرده كارو اون آي دي 1 اون آخر
مي خوام اون 1 نباشه

localhost/test/aboutme اينجوري نمايش داده بشه
ممنون ميشم راهنمايي كنيد

MMSHFE
دوشنبه 19 خرداد 1393, 10:56 صبح
خوب شما قاعدتاً یک فیلد به اسم name یا هر چیز دیگه دارین که aboutme توش نوشته شده (اگه ندارین اضافه کنید). حالا urlmanager رو اینطوری تنظیم کنید:

'page/<name:\w+>'=>'static/view',
حالا متدتون رو این شکلی پیاده سازی کنید:

class StaticController {
...
public function actionView($name) {
$model = Page::model()->findByAttributes(array('name'=>$name));
if(!$model) {
throw new CHttpException(404, 'Page not found.');
}
$this->render('view', array('model'=>$model));
}
...
}
حالا آدرسهاتون اینطوری میشه:

localhost/test/page/aboutme

tinybyte
سه شنبه 27 خرداد 1393, 15:22 عصر
اينطوري را هم امتحان كنيد
در StaticController

public function actionView($id = null)
اينطوري منتظر آيدي نمي مونه