2016-03-21 140 views
1

進出口實現laravel RoumenDianoff網站地圖在我的應用程序站點地圖生成器與RoumenDianoff網站地圖

https://github.com/RoumenDamianoff/laravel-sitemap/wiki/Dynamic-sitemap

和IM上的代碼,這部分真的很困惑

Route::get('sitemap', function(){ 

// create new sitemap object 
$sitemap = App::make("sitemap"); 

// set cache key (string), duration in minutes (Carbon|Datetime|int), turn on/off (boolean) 

$sitemap->setCache('laravel.sitemap', 60); 

$posts = DB::table('posts')->orderBy('created_at', 'desc')->get(); 


    foreach ($posts as $post) 
    { 
     $sitemap->add($post->slug, $post->modified, $post->priority, $post->freq); 
    } 

據我瞭解我創建了一個使用網站地圖作爲該功能的路線,所以我沒有得到的部分是什麼時候迭代通過我網站的每個鏈接,或者我如何從我的網站獲得這個鏈接,然後添加到每個那個功能,我的意思是看起來像t帽子$帖子變量,但我沒有任何數據庫上的鏈接的記錄,所以我怎麼能得到這個鏈接。

+0

嗨,我也堅持着同樣的問題。現在有解決方案嗎? –

回答

1

我會做的是動態生成鏈接(可能使用數據庫中的值)。然後創建一個將被所有鏈接填充的網站地圖對象(使用foreach循環)並最終存儲它。看看下面的代碼片段:

Route::get('sitemap',function(){ 

    // Generate your links dynamically here 
    $link = []; 
    $locations = DB::locations(); /** some database values **/ 

    foreach($locations as $location){ 
     $link = route('home') . '/shoes-for-sale-in-' . strtolower($location); 

     // create new sitemap object 
     $sitemap = \App::make("sitemap"); 

     // Add link, priority,last modified and change frequency 
     $sitemap->add($link, null, 0.5, 'monthly'); 

    } 

    // generate sitemap (format, filename) 
    $sitemap->store('xml', 'commercial'); 
});