2016-11-03 58 views
0

我安裝了一個在我的本地Xampp服務器上使用Yii Framework的php腳本。我如何將這個URL http://localhost/magicweb/home/shop/client-name-1更改爲http://localhost/magicweb/client-name-1?有沒有簡單的方法來做到這一點與.htaccess或我需要使用Yii控制器做到這一點?我對php和yii框架很陌生。如何在Yii框架中縮短網址?

+0

您需要構建一組要在整個應用程序中使用的網址模式。 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. 使用塞

擴展上述業務的供應商表中添加「鼻涕蟲」列(店,我假設)和每當創建或更新記錄時更新列。您將使用「slug」列作爲URL中的唯一ID以顯示供應商的信息。例如:/ mc-donalds,/ starbucks或/ burger-king。

  • 在main.php您UrlManager配置添加URL規則,現有規則之前如下:
  • '<slug:[-a-zA-Z]+>' => 'vendor/view', 
    

    上述規則將指向「供應商」控制器和「查看」動作,在動作中,您將指定從url獲取的slug參數,然後您將使用該slug查詢「商店」記錄並顯示其信息以供查看。

    您將需要一個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-多納爾茲,本地主機/ magicweb /星巴克或本地主機/ magicweb /漢堡王