#php #laravel #routes
#php #laravel #маршруты
Вопрос:
нужно показать 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
тоже нужно получить другие вещи
кто-нибудь может мне помочь, как мне это сделать.
Комментарии:
1. Вы не можете получить идентификатор с помощью
$pro->id
?2. все это было моей ошибкой в
route
том, что я использовалmodel
вместоget
решаемого и теперь работает нормально
Ответ №1:
вы можете получить идентификатор в контроллере
вы получаете все данные проектов, используя
$pro = Projects::where('pro_title', $name)->first();
затем вы передаете этот полученный идентификатор следующим образом
$proImg = ProjectsImages::where('image_id', $pro->id)->get();
$proPln = ProjectsPlans::where('image_id', $pro->id)->get();
Комментарии:
1. спасибо, но теперь, когда я пытаюсь посетить изображения проекта, маршрут будет примерно таким, как
http://localhost/elarabiaLaravel/project/proName/project-map
я понимаюSymfony Component HttpKernel Exception NotFoundHttpException
2. @YousefAltaf.попробуйте напечатать каждый шаг. проверьте, есть ли какие-либо данные в базе данных
3. я
route
использую/{sub}
в качестве третьего pram, который будет содержатьproject-images, plans, etc.
, и я переключаюсь между ними с помощью$seg = Request::segment(3);
what should I print извините, не понял вас?4. выводите один за другим, как $ seg , $ pro etc.so вы можете узнать, что происходит не так
5. распечатано
$pro
,$proImg
получена информация о проекте, распечатаны изображения проекта, я думаю, что это что-то должно быть сделано в маршруте, он самостоятельно проверяет эту полную информацию об ошибке$others = $this->checkForAlternateVerbs($request); if (count($others) > 0) { return $this->getOtherMethodsRoute($request, $others); } throw new NotFoundHttpException;