Laravel 5.4报错:路由[/createhotel]未定义,附视图代码求助
解决Laravel 5.4中Route [/createhotel] not defined的错误
这个错误的核心原因是你在视图中使用route()辅助函数时,传入了URL路径而非路由名称——Laravel的route()函数是通过路由名称来生成URL的,不是直接用路径。下面是具体的排查和解决步骤:
1. 检查并修正路由定义
打开routes/web.php文件,找到对应/createhotel的路由,确保你给它设置了路由名称:
错误的路由写法(无名称):
Route::get('/createhotel', 'HotelController@create');
正确的路由写法(添加名称):
Route::get('/createhotel', 'HotelController@create')->name('createhotel');
这里的->name('createhotel')就是给路由设置了一个专属名称,后续视图中就可以通过这个名称调用路由。
2. 修正视图中的路由调用
在你的首页视图里,找到调用route('/createhotel')的地方,把路径改成路由名称:
错误的视图代码:
{{ route('/createhotel') }}
正确的视图代码:
{{ route('createhotel') }}
注意不要带开头的斜杠,route()函数的参数是你在路由里定义的名称字符串。
3. 清除路由缓存(可选但重要)
如果你之前运行过php artisan route:cache生成了路由缓存,新添加的路由名称不会立即生效,需要手动清除缓存:
php artisan route:clear
额外提示:修正视图的HTML结构问题
你的视图代码里同时写了@extends('layouts.app')和完整的<!DOCTYPE html>、<head>标签,这会导致HTML结构重复错误。因为layouts.app布局文件应该已经包含了页面的基础结构(DOCTYPE、head、body等),你的子视图只需要保留@section('content')内的内容即可,把重复的DOCTYPE和head部分删掉。
内容的提问来源于stack exchange,提问作者thirteen4054
相关产品推荐
相关产品推荐

