2016-10-13 5 views
0

müssen die project name anstelle der id mit der Route anzeigen. Ich tat es aber was, wenn ich die id in der Steuerung auch brauche, wie ich es benutze, um die verwandte project images und andere Sachen zu bekommen. wie das gemacht werden kann.Laravel - Zeigen Sie Name anstelle von ID in einer URL mit Routing

hier ist meine Strecke

Route::model('project/{name}/{sub}', array('uses' => '[email protected]')); 

und hier ist mein Controller

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; 
     } 
    } 

jetzt, wie Sie ich erfolgreich die Strecke vom project_title genannt bekam ich sehen kann, aber ich brauche die id zu bekommen andere Sachen

kann mir jemand helfen, wie soll ich das erreichen.

+2

Cant Sie die ID erhalten, indem mit '$ pro-id? – Neat

+0

Es war alles mein Fehler in meiner 'route' Ich benutzte' Modell' anstelle von 'Get' gelöst und funktioniert jetzt gut –

Antwort

2

können Sie id in controller

Sie alle Daten von Projekten erhalten abrufen mit

$pro = Projects::where('pro_title', $name)->first(); 

dann passieren, dass abgerufene id wie

$proImg = ProjectsImages::where('image_id', $pro->id)->get(); 
     $proPln = ProjectsPlans::where('image_id', $pro->id)->get(); 
+0

Danke, aber jetzt, wenn ich versuche, die Projektbilder zu besuchen, wird die Route etwas wie' http: // localhost sein/elarabiaLaravel/project/proName/project-map Ich bekomme 'Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException' jede Idee –

+0

@ YousefAltaf.try, um jeden Schritt zu drucken.überprüfe, ob Daten dort db – iCoders

+0

sind meine' route' verwendet '/{sub} 'als dritter Kinderwagen, der die' Projektbilder, Pläne usw. 'enthält und ich zwischen ihnen durch das '$ seg = Request :: Segment (3) wechsle;' was soll ich ausdrucken? t kommst du? –

Verwandte Themen