@HAtan

Ошибка с Route::resource()?

Только начал вливаться в суть Ларавел, посмотрел видео курс, повторил, но карты не сошлись.
Камнями не бросайтесь. В курсе делали на 5.8 , а я на 7й.

Есть такие роуты
Route::get('/', 'BlogPostController@index');
Route::get('post/', 'BlogPostController@index')->name('post.index');
Route::get('post/create', 'BlogPostController@create')->name('post.create');
Route::get('post/show/{id}', 'BlogPostController@show')->name('post.show');
Route::get('post/edit/{id}', 'BlogPostController@edit')->name('post.edit');

Route::post('post/', 'BlogPostController@store')->name('post.store');

Route::patch('post/show/{id}', 'BlogPostController@update')->name('post.update');
Route::delete('post/{id}', 'BlogPostController@destroy')->name('post.destroy');


Попытка повторить такой ресурсный роут зазнала краха, но в курсе все произошло легко и просто без каких либо манипуляций
Route::get('/', 'BlogPostController@index');
Route::resource('/posts', 'BlogPostController');


И получаю фатальную ошибку
Route [post.show] not defined. (View: C:\xampp\htdocs\laravel\academy\resources\views\posts\index.blade.php)
index.blade.php

@extends('layouts/layout',['title' =>'Главная страница'])
@section('content')
      @if(isset($_GET['search']))
        @if(count($posts)>0)
          <h2>Результаты поиска по запросу <?=$_GET['search'] ?></h2>
          <p class="lead">Всего найдено {{ count($posts) }} постов</p>
        @else
          <h2>По запросу <?=$_GET['search'] ?> ничего не найдено</h2>
          <a href="{{route('post.index')}}" class="btn btn-outline-primary">Ко всем постам</a>
        @endif
      @endif

        <div class="row">
            @foreach($posts as $post)
            <div class="col-6">
                <div class="card">
                    <div class="card-header"><h2>{{ $post->short_title }}</h2></div>
                    <div class="card-body">
                      <div class="card-img" style="background-image: url({{ $post->img ?? asset('img/picca.jpg') }})"></div>
                      <div class="card-author">Автор: {{ $post->name }}</div>
                      <a href="{{ route('post.show', ['id' => $post->post_id]) }}" class="btn btn-outline-primary">Посмотреть пост</a>
                    </div>
                </div>
            </div>
            @endforeach
        </div>
        @if(!isset($_GET['search']))
        {{$posts->links()}}
        @endif
@endsection




Прописал route:list
+--------+-----------+-------------------+---------------+-------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------+---------------+-------------------------------------------------+------------+
| | GET|HEAD | / | | App\Http\Controllers\BlogPostController@index | web |
| | GET|HEAD | api/user | | Closure | api |
| | GET|HEAD | posts | posts.index | App\Http\Controllers\BlogPostController@index | web |
| | POST | posts | posts.store | App\Http\Controllers\BlogPostController@store | web |
| | GET|HEAD | posts/create | posts.create | App\Http\Controllers\BlogPostController@create | web |
| | GET|HEAD | posts/{post} | posts.show | App\Http\Controllers\BlogPostController@show | web |
| | PUT|PATCH | posts/{post} | posts.update | App\Http\Controllers\BlogPostController@update | web |
| | DELETE | posts/{post} | posts.destroy | App\Http\Controllers\BlogPostController@destroy | web |
| | GET|HEAD | posts/{post}/edit | posts.edit | App\Http\Controllers\BlogPostController@edit | web |
+--------+-----------+-------------------+---------------+-------------------------------------------------+------------+

Надеюсь на помощь знающих людей, в этом не легком деле для новичка
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Route [post.show

posts/{post} | posts.show |
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы