需要显示project name
而不是使用路由的id
。我这样做了,但是如果我也需要控制器中的id
,因为我用它来获得相关的project images
和其他东西。如何做到这一点。
这是我的路由
Route::model('project/{name}/{sub}', array('uses' => 'projectController@show'));
这里是控制器
public function show($name)
{
$seg = Request::segment(3);
$pro = Projects::where('pro_title', $name)->first();
$proImg = ProjectsImages::where('image_id', $id)->get();
$proPln = ProjectsPlans::where('image_id', $id)->get();
$services = $pro->pro_serves;
$service = explode(',', $services);
switch ($seg) {
case "project-plans":
return View::make('projects.projectDetails.verticalPlans', compact('pro', 'proPln'));
break;
case "project-images":
return View::make('projects.projectDetails.projectImages', compact('pro', 'proImg'));
break;
case "project-map":
return View::make('projects.projectDetails.projectPlace', compact('pro'));
break;
case "project-features":
return View::make('projects.projectDetails.projectFeatures', compact('pro', 'service'));
break;
default :
return View::make('projects.projectDetails.aboutProject', compact('pro'));
break;
}
}
现在你可以看到,我成功地获得了命名为project_title的路由但是我还需要id
来获取其他东西
有谁能告诉我该怎么做吗?
您可以在控制器
中检索id您可以使用
获取项目的所有数据$pro = Projects::where('pro_title', $name)->first();
然后传递检索到的id,比如
$proImg = ProjectsImages::where('image_id', $pro->id)->get();
$proPln = ProjectsPlans::where('image_id', $pro->id)->get();