我正在尝试使用代码在顶部导航菜单中创建链接,以检查路线名称中是否包含文本模式。
除了一条路由也被定义为资源之外,所有路由都在工作。
下面是我在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
答案 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')
。