这是可以想象的最糟糕的标题,让我尽我所能地解释我的关注。因此,基本上在我的框架中,我使用site.com/controller/method/parameters
我将以此页面为例site.com/news/edit/12
然后,如果我不应用路由,则我的控制器名称必须为News
,被调用的方法将为edit
,其中包含单个参数12
。然后,如果为了表明我的担忧,我决定在不同的页面中编辑新闻标题和正文,我将不得不导航到site.com/news/edit/12/title
。这是它变得混乱的地方,基本上我想问的是:
包含依赖于传递给控制器的参数的页面的正确方法是什么?
恕我直言,这看起来很难看,如果我在页面树下面有更多这样的页面分隔怎么办
class News {
public function edit($id, $section){
if(method_exists($this, $section){
return $this->$section($id);
}
}
private function title($id){
// Display page to edit news title
}
private function body($id){
// Display page to edit news body
}
}
更不用说这也可能导致调用不应该被调用的现有方法的潜在问题。
答案 0 :(得分:1)
请不要根据get params动态执行方法。这可能非常危险。 标准路由的一种简单方法:
// site.com/news/edit-title/12
public function editTitle($id);
// or depending on your framework
public function edit_title($id);
另一种可能更清洁的解决方案是构建自定义路线:
// site.com/news/edit/title/12
public function editTitle($id);