href返回另一个URL

时间:2019-03-25 01:53:14

标签: php laravel

当我在视图 ... / public / single / 1 中单击菜单导航(例如href ='home')后,他们将我发送到。 ./public/single/home 而不是 ... / public / home

这是我的代码:

菜单列表

<div class="header_content d-flex flex-row align-items-center justify-content-start">
    <div class="logo"><a href="#"><span>m</span>a <span> B</span>ibli<span>o</span></a></div>
        <nav class="main_nav">
            <ul class="d-flex flex-row align-items-start justify-content-start">
                <li class="{{$home}}"><a href="home">Acceuil</a></li>
                <li class="{{$about}}"><a href="about">About us</a></li>
                <li class="{{$listing}}"><a href="listing">Produits</a></li>
                <li class="{{$blog}}"><a href="blog">Nouveauté</a></li>
                <li class="{{$contact}}"><a href="contact">Contactez nous!</a></li>
            </ul>
        </nav>
        <div class="submit ml-auto"><a href="#">Recherche >></a></div>
        <div class="hamburger ml-auto"><i class="fa fa-bars" aria-hidden="true"></i></div>
    </div>
</div>

WEB.PHP

Route::get('/single/{id}','AnnonceController@annonce');
Route::get('/home','PagesController@home');
Route::resource('home','AnnonceController');

这是我的控制器:

public function annonce($id) {
    $annonce = DB::table('annonce')
        ->join('article', 'annonce.ID_ANNONCE', '=', 'article.ID_ANNONCE')
        ->join('photo_articles', 'photo_articles.ID_ARTICLE', '=', 'article.ID_ARTICLE')
        ->select('annonce.*', 'article.NOM_ARTICLE','PHOTO_ARTICLE')
        ->where('annonce.ID_ANNONCE',$id)
        ->get();

   return view('single')->with('annonce',$annonce);
}

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您提供的href ='home'将添加到您的当前URL中,这意味着您位于single / 1(路由参数)上,并且当您单击它时将成为single / home(参数)。

因此请提供完整路径。

我建议您使用laravel的路由功能,并按如下所示为您的路由命名

Route::get('/home','PagesController@home')->name('myhome'); 请参阅Documentation来命名路由。

然后像这样在您的刀片中称呼它 {{route('myhome')}}

答案 1 :(得分:0)

您的退货声明应为return view('single',['id' => $id])->with('annonce',$annonce);

注意:请在Laravel中使用关系,而不要使用DB::table

public function annonce($id) {
    $annonce = DB::table('annonce')
        ->join('article', 'annonce.ID_ANNONCE', '=', 'article.ID_ANNONCE')
        ->join('photo_articles', 'photo_articles.ID_ARTICLE', '=', 'article.ID_ARTICLE')
        ->select('annonce.*', 'article.NOM_ARTICLE','PHOTO_ARTICLE')
        ->where('annonce.ID_ANNONCE',$id)
        ->get();

   return view('single',['id' => $id])->with('annonce',$annonce);
}