需要使用该路线显示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
来获取其他内容
任何人都可以帮助我如何实现这一目标。
答案 0 :(得分:2)
您可以在控制器中检索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();