2016-11-03 3 views
0

로컬 Xampp 서버에서 Yii Framework를 사용하여 PHP 스크립트를 설치했습니다. 이 URL을 어떻게 변경합니까? http://localhost/magicweb/home/shop/client-name-1http://localhost/magicweb/client-name-1으로 변경 하시겠습니까? .htaccess로이 작업을 수행하는 쉬운 방법이 있습니까? 아니면 Yii 컨트롤러를 사용하여이 작업을 수행해야합니까? 나는 php와 yii 프레임 워크에 매우 익숙하다.Yii Framework에서 URL을 어떻게 줄일 수 있습니까?

+0

로컬 호스트 애플리케이션 전체에서 사용할 URL 패턴 세트를 만들어야합니다. Yii UrlManager에는 이미 "controller-name/action-name"이라는 패턴이 있습니다. 적합하지 않은 경우 UrlManager를 사용자 정의하면 도움이 될 수 있습니다. 그것이 명확하지 않은지 알려주십시오. – Klaus

+0

어디에서 예제를 찾을 수 있습니까? 도움을 주셔서 감사합니다 – Marsel

+0

여기를 참조하십시오 http://www.yiiframework.com/doc/guide/1.1/en/topics.url – Klaus

답변

1
  1. 사용 슬러그 http://www.yiiframework.com/extension/slug-behavior/

확장 위의 비즈니스 공급 업체 테이블에서 "총알"열을 추가 (상점, 내가 가정)

  • 이 확장의 방향으로 설치하고 따라 레코드가 생성되거나 업데이트 될 때마다 열을 업데이트합니다. 공급 업체의 정보를 표시하려면 URL에서 고유 ID로 "슬러그"열을 사용하십시오. 예 :/mc-donalds,/starbucks 또는/burger-king. 다음과 같이

  • 은 기존 규칙 전에 main.php에 UrlManager의 설정에서 URL 규칙을 추가
      :
    '<slug:[-a-zA-Z]+>' => 'vendor/view', 
    

    위의 규칙 것 "공급 업체"컨트롤러 및 "보기"작업을 가리키면 url에서 가져온 슬러그 매개 변수를 지정하면이 슬러그를 사용하여 "상점"레코드를 쿼리하고 표시 할 정보를 표시합니다.

    당신은 slugify 기능을 필요 :

    public static function getSlug($string) 
    { 
    
        //remove any '-' from the string they will be used as concatonater 
        $str = str_replace('-', ' ', $string); 
        $str = self::removeAccent($string); 
    
        // remove any duplicate white, and ensure all characters are alphanumeric 
        $str = preg_replace(array('/\s+/', '/[^A-Za-z0-9\-]/'), array('-', ''), $str); 
    
        // lowercase and trim 
        $str = trim(strtolower($str)); 
        return $str; 
    } 
    

    당신 로컬 호스트/magicweb하여 공급 업체의 페이지로 이동합니다/MC-donalds/magicweb/스타 벅스 또는 로컬 호스트/magicweb/버거 킹

관련 문제