2014-10-03 562 views
0

我忙於創建一個使用seo網址的網站。我有一個有seo數據的表,它引用了我的菜單表。seo網址不顯示laravel

這是我的助手功能

function getSeo($menu_id) 
{ 
$seo = DB::table('seo')->where('menu_id', '=', $menu_id)->get(); 

if(empty($seo)){ 
    return 'page/'. $menu_id; 


} 

if(!empty($seo[0]->url)){ 

    return 'page/'. $menu_id; 

} 

return $seo[0]->url; 
} 

我master.blade.php

@foreach($menus as $menu) 

    <li> 
     {{ HTML::link(getSeo($menu->id), $menu->title) }} 
    </li> 
@endforeach 

如果我刪除

return 'page/'. $menu_id; 

if(!empty($seo[0]->url)){ 

    return 'page/'. $menu_id; 
} 

然後它顯示在底部,你可以在鏈接懸停的地方看到url,但是如果你點擊鏈接,你會得到一個路由錯誤。

但是,如果我這樣做:

if(!empty($seo[0]->url)){ 
    $menu_id = $seo[0]->url; 
    return 'page/'. $menu_id; 
} 

那麼它的工作原理,但我的內容顯示不出來,當我點擊鏈接。

如果你需要的任何信息請讓我知道

回答

0

我想問題可能是你的第二個if語句。

if(!empty($seo[0]->url)){ 
    return 'page/'. $menu_id; 
} 

你基本上是說 「如果url爲空,返回頁/ menu_id」。

下一行只有在空時才返回$seo[0]->url

你的if語句,而應是:

if(empty($seo[0]->url)){ 
    return 'page/'. $menu_id; 
}