2014-10-03 173 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; 
}