Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel-使用路由在url中显示名称而不是id_Php_Laravel_Routes - Fatal编程技术网

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 get
Symfony\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 get
Symfony\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