2016-07-31 2 views
0

저는 Laravel 5에서 e-com 웹 사이트를 개발하려고합니다. (커스터마이징이 많이 필요했기 때문에 Magento 또는 OpenCart를 사용하지 않기로했습니다.)Laravel에 슬러그를 만드는 법?

내가 직면 한 문제는 굼벵이에서 카테고리 및 제품 URL을 만드는 것입니다.

http://somewebsite.com/products/lenovo-yoga-500

하지만 URL처럼 만들고 싶어 :

예를 들어, 하나 개의 URL이 될 수

Route::get('{slug}', '[email protected]'); 
: 나는 같은 길을 만들려고

http://somewebsite.com/lenovo-yoga-500

및 경로()에서 THOD, 나는 시도 :

function route($route){ 
    $product = Product::where(array('slug' => $slug))->first(); 

    if(isset($product)) 
    ..... 
    else 
    ..... 

하지만 우선은, 값이 변수 '$ 슬러그'에 전달하기되지 않고, 둘째로 나는 상태를 확인한 후 다른 경로로 요청을 리디렉션 할.

답변

0

첫 번째 매개 변수로 슬러그를 설정하는 방식으로 페이지의 모든 경로가 슬러그로 해석되기 때문에 첫 번째 URL (product/{slug})로 이동하고 싶을 수 있습니다.

어느 쪽이든, 같은

문서는 여기에서 요구하는 모든 것을 포함
function route($slug){ 
    $product = Product::where(array('slug' => $slug))->first(); 

    if(isset($product)) 
    ..... 
    else 
    ..... 

같은 컨트롤러 방법을 수정, 그래서 루트로 리디렉션에 대해 읽어 보시기 바랍니다.

0

Magento처럼 효과적이기 위해서는 재구성 할 새로운 product-routes.php 파일을 추가해야합니다.

protected function mapWebRoutes(Router $router) 
{ 
    $router->group([ 
     'namespace' => $this->namespace, 
    ], function ($router) { 
     require app_path('Http/routes.php'); 
     require base_path('resources/routes/product-routes.php'); 
    }); 
} 

다음 :

먼저 따라서 동적 경로 파일을로드 app/Providers/RouteServiceProvider.php 지시 저장하거나 사용자가 백엔드에서 요청할 때 모든 제품 슬러그 경로를 포함하고하여 제품을로드에 자동으로 product-routes.php 재 구축 강타.

희망이 있습니다.

public function getRouteKeyName() { 
    return 'slug'; 
} 

노선의 :

Route::get('{product}', '[email protected]'); 

ProductController의 : 제품 모델에

0

경로는 루트 파일에 마지막으로해야

public function product(Product $product) { 
    $product->doSomething(); 
} 

하는 것으로 해당하므로, 어떠한 다른 경로는 그 전에 일치 할 수있는 기회가 있습니다.