Laravel子视图中的导航菜单动态设置HTTP路由

时间:2016-05-13 09:23:08

标签: html rest laravel

在我的Laravel 5.2 CRUD应用程序中,导航菜单位于每个子视图继承的自己的布局中。

但是,对于通过其RESTful资源控制器访问的其中一个子视图(create.blade.php),导航菜单上的每个链接都会更改。

E.g。当我在主页和 mywebsite.dev/books 页面时,HOME链接显示 mywebsite.dev/home

但是,当我到 mywebsite.dev/books/create 时,所有导航项目现在都有 mywebsite.com/books / 。所以例如从“创建新书”页面单击“关于”页面,转到 mywebsite.dev/books/about ,而不是转到 mywebsite.dev/books 。有趣的是,只有BOOKS页面的链接是正确的,并说 mywebsite.dev/books

在我的导航中,HOME,BOOKS和ABOUT页面列为href =“/”href =“/ books”和href =“/ about”

任何想法为什么会如此?

编辑: 我的BooksController:

 public function index()
{
    // get all the books
    $books = Book::all();

    // load the view and pass the books
    return View::make('books.index')->with('books',$books);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return View::make('books.create');
}

这是routes.php:

Route::auth();
Route::get('/', 'HomeController@index');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Route::get('/home', 'HomeController@index');
Route::resource('books','BookController');

1 个答案:

答案 0 :(得分:1)

您应该在视图中使用url()帮助器。因此,它可以确保您获得绝对链接。

<a href="{{ url('/about') }}">About</a>
<a href="{{ url('/books') }}">Books</a>
<a href="{{ url('/') }}">Home</a>