this可能重复。但在我的情况下无法得到答案。
我需要在我的Laravel网站上使用链接,但它会导致“路由未定义”错误。
HTML:
<ul class="nav navbar-nav">
@auth
<li>
<a href="{{ route('add-post') }}">Add post</a>
</li>
@endauth
</ul>
web.php:
Route::get('/add-post', 'PagesController@add_post');
PagesController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PagesController extends Controller
{
public function add_post()
{
return view('add-post');
}
}
答案 0 :(得分:1)
所以你基本上有两个选择。当您使用route
函数时,Laravel正在寻找命名路由。要命名路线,您可以在路线定义的末尾添加->name('name-of-route-here')
。
如果您不想为路线命名,可以使用url
辅助功能代替route
,因此您的代码将为url('add-post')
指定路线的文件:https://laravel.com/docs/5.5/routing#named-routes
有关url
功能的文档:https://laravel.com/docs/5.5/helpers#method-url
答案 1 :(得分:0)
您需要为此路线命名:
例如:
Route::get('/add-post', 'PagesController@add_post')->name('add-post);
这是因为当您使用route('add-post')
时,正在根据web.php文件中设置的名称请求URL
答案 2 :(得分:0)
只需改变一下:
<ul class="nav navbar-nav">
@auth
<li>
<a href="{{ url('add-post') }}">Add post</a>
</li>
@endauth
web.php:
Route::get('add-post', 'PagesController@add_post');