2017-03-14 1 views
0

나는 사용자가 각 클라이언트가있을 것이다 클라이언트중첩 된 컨트롤러 및 경로

을 만들 수있는 대시 보드를 만드는거야 : 카테고리, 종업원 수, ... 지금 내가 경로를 구성하는 방법을 궁금하네요. 예를 들어

나는 다음과 같은 만들 경우 : (의사 코드)

Route::get('clients/{id}/'); 
Route::get('clients/{id}/categories'); 
Route::get('clients/{id}/categories/{category}'); 
Route::get('clients/{id}/categories/{category}/questions/{question}'); 

이 불필요한 매개 변수가 많은 것 같아 ..

너희들은 이것에 대해 어떻게 가야합니까? 나는 분리 된 페이지에 카테고리를 나누고 싶다. 직원들은 별도의 페이지에있다.

감사합니다.

답변

1

내 프로젝트 모두에서 URL에 중첩 된 엔티티를 많이 사용하지 않기 때문에 각각 하나씩 액세스 할 수 있습니다.이 또한 laravel의 교육 웹 사이트 인 Laracast에서 @jeffrey_way가 추천했습니다. 그래서, 나는 다음을 수행합니다 :

Route::get('clients/{id}/'); 
Route::get('categories/{client_id}'); 
Route::get('categorie/{category}'); //not that i have removed the plural s from categorie(s) 
Route::get('question/{question}'); 

행운 그것은 정직 응용 프로그램이 될 것입니다 얼마나 큰에 따라

+0

감사합니다. 제프리가 이것을 설명하는 교훈을 알고 있습니까? – Notflip

+0

잘 기억한다면,이 훈련 : [laravel 5.4 from scratch] (https://laracasts.com/series/laravel-from-scratch-2017) –

1

, 내가 것 아마 그룹을, 그래서 여전히 같은 구조를 유지.

Route::group('clients/{id}', function() 
{ 

    Route::get('/'); 

    Route::group('categories', function() 
    { 

     Route::get('/'); 
     Route::get('{category}'); 
     Route::get('{category}/questions/{question}'); 
    }) 
}) 

너와 같지만 나중에 카테고리 나 클라이언트를 확장하면 나중에 약간의 정리가 느껴진다.

0

그런 경우에 나는 GET 메서드에서와 같이 모든 매개 변수가 하나의 경로 만 사용하는 것을 선호합니다.

Route::get('client/create', '[email protected]');

그래서

, 모든 매개 변수는 아래와 같이 ClientControllerstore 방법으로 유지됩니다 : 그래서, 나는 다음과 같은 설정 한 PARAM를 추가 할 것이다

public function store(Request $request){ 
    $category = $request->get('category') 
    //...... 
    //get other get parameters like this when required 
} 

내가 실행하는 데 필요 이 경로는 그냥 아래처럼 뭔가를 할 것이다 :

<a href="{{url('client/create').'?category=1&question=2'}}">Create link</a>

아시다시피 이전의 글로벌 친구 GET 변수를 사용하여 매개 변수를 전달할 수 있습니다.