Php laravel-使用路由在url中显示名称而不是id
需要使用路线显示Php laravel-使用路由在url中显示名称而不是id,php,laravel,routes,Php,Laravel,Routes,需要使用路线显示项目名称,而不是id。 我这样做了,但是如果我也需要控制器中的id,因为我使用它来获取相关的项目图像和其他东西,该怎么办呢。如何做到这一点 这是我的路线 Route::model('project/{name}/{sub}', array('uses' => 'projectController@show')); 这是我的控制器 public function show($name) { $seg = Request::segment(3);
项目名称
,而不是id
。
我这样做了,但是如果我也需要控制器中的id
,因为我使用它来获取相关的项目图像
和其他东西,该怎么办呢。如何做到这一点
这是我的路线
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;
}
}
现在,正如您所看到的,我成功地获得了由项目名称命名的路线,但我也需要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();
您可以在控制器中检索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();
你能用
$pro->id
得到身份证吗?这都是我在路线上的错误
我用模型
代替了得到
解决,现在工作很好你能用$pro->id
得到身份证吗?这都是我在路线上的错误
我用模型
代替了得到
解决和现在工作很好谢谢,但现在当我尝试访问项目图像时,路线将类似http://localhost/elarabiaLaravel/project/proName/project-map
I getSymfony\Component\HttpKernel\Exception\NotFoundHttpException
anyidea@YousefAltaf.try要打印每个步骤,请检查数据库中是否有数据route
使用/{sub}
作为第三个婴儿车,它将存放项目图像、计划等
,我通过$seg=Request::segment(3)在它们之间切换
我应该打印什么抱歉没有收到你的通知?像$seg、$pro等那样逐个打印,这样你就可以知道打印出了什么错误$pro
打印了项目信息$proImg
获得了项目图像,我认为应该在路由中做一些事情,它自检这个完整的错误详细信息$others=$this->checkForAlternateVerbs($request);如果(count($others)>0{返回$this->getOtherMethodsRoute($request,$others);}抛出新的NotFoundHttpException代码>谢谢,但现在当我尝试访问项目图像时,路线将类似http://localhost/elarabiaLaravel/project/proName/project-map
I getSymfony\Component\HttpKernel\Exception\NotFoundHttpException
anyidea@YousefAltaf.try要打印每个步骤,请检查数据库中是否有数据route
使用/{sub}
作为第三个婴儿车,它将存放项目图像、计划等
,我通过$seg=Request::segment(3)在它们之间切换
我应该打印什么抱歉没有收到你的通知?像$seg、$pro等那样逐个打印,这样你就可以知道打印出了什么错误$pro
打印了项目信息$proImg
获得了项目图像,我认为应该在路由中做一些事情,它自检这个完整的错误详细信息$others=$this->checkForAlternateVerbs($request);如果(count($others)>0{返回$this->getOtherMethodsRoute($request,$others);}抛出新的NotFoundHttpException代码>