Грешка в Laravel: маршрутът не е дефиниран

Възможен дубликат на това. Но не можах да получа отговора в моя случай.

Трябва да използвам връзка на моя уебсайт Laravel, но тя продължава да води до грешка „маршрутът не е дефиниран“.

Html:

<ul class="nav navbar-nav">
@auth
    <li>
        <a href="/bg{{ 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');
    }
}

person Community    schedule 18.01.2018    source източник
comment
Има ли изобщо възможност за обратна връзка относно отговора?   -  person Andy Holmes    schedule 18.01.2018


Отговори (3)


Трябва да наименувате маршрута, за да направите това:

Например:

Route::get('/add-post', 'PagesController@add_post')->name('add-post);

Това е така, защото когато използвате route('add-post'), те изискват URL въз основа на името, зададено във файла web.php

person Andy Holmes    schedule 18.01.2018
comment
Това беше първият anwser, който опитах и ​​който работи. Благодаря! - person ; 18.01.2018
comment
@YvesSterckx няма проблем! Можете ли да го приемете като полезно, моля? (Иконата с отметка до въпроса) - person Andy Holmes; 18.01.2018

Така че основно имате две възможности тук. Когато използвате функцията 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

person Brian Glaz    schedule 18.01.2018

Просто променете това:

<ul class="nav navbar-nav">
   @auth
     <li>
      <a href="/bg{{ url('add-post') }}">Add post</a>
   </li>
   @endauth

web.php:

Route::get('add-post', 'PagesController@add_post');
person Matiur Rahman Mozumdar    schedule 18.01.2018