Laravel错误:路由未定义

时间:2018-01-18 15:49:08

标签: php laravel-5

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');
    }
}

3 个答案:

答案 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');