路线::有注意检测路线资源

时间:2019-10-26 18:46:20

标签: laravel eloquent

我正在尝试使用代码在顶部导航菜单中创建链接,以检查路线名称中是否包含文本模式。

除了一条路由也被定义为资源之外,所有路由都在工作。

下面是我在web.php文件中的代码

 Route::get('/bookings', 'BookingController@index')->name('bookings');
 Route::resource('/bookings', 'BookingController');

在app.blade.php文件中,代码如下:

@if (Route::has('bookings'))
  <li class="nav-item">
    <a class="nav-link" href="{{ route('bookings') }}">{{ __('Bookings') }}</a>
  </li>
@endif            

我检查了php artisan中的路由,并将其列出为现有路由。

| api,auth:api |
|        | POST      | bookings                | bookings.store   | App\Http\Controllers\BookingController@store                           | web          |
|        | GET|HEAD  | bookings                | bookings.index   | App\Http\Controllers\BookingController@index                           | web          |
|        | GET|HEAD  | bookings/create         | bookings.create  | App\Http\Controllers\BookingController@create                          | web          |
|        | PUT|PATCH | bookings/{booking}      | bookings.update  | App\Http\Controllers\BookingController@update                          | web          |
|        | GET|HEAD  | bookings/{booking}      | bookings.show    | App\Http\Controllers\BookingController@show                            | web          |
|        | DELETE    | bookings/{booking}      | bookings.destroy | App\Http\Controllers\BookingController@destroy                         | web          |
|        | GET|HEAD  | bookings/{booking}/edit | bookings.edit    | App\Http\Controllers\BookingController@edit

1 个答案:

答案 0 :(得分:1)

<?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>DreamcarZ</title> <link rel="stylesheet" href="css/style.css" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Ubuntu+Condensed&display=swap" rel="stylesheet"> </head> <body> <div class="header"> ​<div class="topnav"> <div class="logo-container"> <h1>Dreamcar<span>Z</span></h1> </div> <?php if(isset($_SESSION['userId'])){ echo '<a href="index.php">Home</a> <a href="exclusive_cars.php">Collection</a> <a href="om_oss.php">About</a> <a href="#contact">Contact</a>'; } else { echo '<a href="index.php">Home</a> <a href="om_oss.php">About</a> <a href="#contact">Contact</a>'; } ?> <div class="login-container"> <?php if(isset($_SESSION['userId'])){ echo '<form action="includes/logout.inc.php" method="post"> <button type="submit" name="logout-submit">Logout</button> </form>'; } else { echo '<form action="includes/login.inc.php" method="post"> <input type="text" name="mailuid" placeholder="Username..."> <input class="inpt-pwd" type="password" name="pwd" placeholder="Password..."> <button type="submit" name="login-submit">Login</button> <a class="signup" href="signup.php">Signup</a> </form>'; } ?> </div> </div> </div> 检查路由列表中是否有名为Route::has('bookings')的路由。网址为bookings时,其在路由列表中的名称bookings-您没有名为bookings.index的路由。

(根据您的bookings输出,您从php artisan route:list调用开始的路由将清除之前的Route::resource调用。删除该多余的/忽略的Route::get定义。)

Route::get应该可以解决问题(并将Route::has('bookings.index')更改为route('bookings')