Как мне установить слаг для замены ID в маршруте на dashboard.blade в Laravel 5.7 - PullRequest
0 голосов
/ 17 мая 2019

Я хотел бы использовать слаг в маршруте вместо идентификатора на кнопке редактирования, но я использую метод Route :: resource?

Так что я не уверен, как это сделать, и я ищу помощь в этом вопросе.

ниже - это то, что я имею до сих пор ...

Вот мои Веб-маршруты

Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about');
Route::get('/category/{category}', [ 
    'uses' => 'PostsController@category',
    'as' => 'category'
]);

Route::resource('books', 'BooksController');
Route::resource('posts', 'PostsController');
Route::resource('categories', 'CategoriesController', ['except'=> ['create']]);

Auth::routes();

Route::get('/dashboard', 'DashboardController@index');

Это мой edit.blade.php

<h1>Edit Post</h1>
<div class="row post_row space">
{!! Form::open(['action' => ['PostsController@update', $post->slug], 'method' => 'post']) !!}
<div class="col-md-4">           
   <div class'form-group'>
     {{ Form::label('title', 'Title')}}
     {{ Form::text('title', $post->title, ['class' => 'form-control', 'placeholder' => 'Title'])}}
   </div>
</div>
<div class="col-md-4">           
       <div class'form-group'>
        {{ Form::label('slug', 'Slug')}}
        {{ Form::text('slug', $post->slug, ['class' => 'form-control ', 'placeholder' => 'Slug', 'required' =>'', 'minlength' => '5', 'maxlength' => '255'])}}
       </div>
</div>
 <div class="col-md-4">
      <div class'form-group'>
           {{ Form::label('category_id', 'Category :')}}
           {{ Form::select('category_id', $categories, null, ['class' => 'form-control']) }}
      </div>
</div>
</div>

<div class="row post_row">
    <div class="col-md-8">
        <div class'form-group'>
             {{ Form::label('body', 'Body')}}
             {!! Form::textarea('body', '$post->body', ['id' => 'article-ckeditor', 'class' => 'form-control space', 'placeholder' => 'Body Text'])!!}
        </div>
    </div>
</div>
            {{Form::hidden('_method', 'PUT')}}
<div class'form-group' style="padding-top: 20px">
            {{Form::submit('Submit', ['class'=>'btn btn-primary'])}}
            {!! Form::close() !!}
</div>

А это моя PostsController.php функция редактирования ... это работает с идентификатором в маршруте, но я получаю ошибку 404. Хотелось бы, чтобы Слаг унёс удостоверение личности на маршруте ...

 public function edit(Post $post,$id)
{
    $post = Post::find($id);
    $categories = Category::all();
    $cats = array();
        foreach ($categories as $category){
            $cats[$category->id] = $category->title;
            }

    return view('posts.edit')->withPost($post)->withCategories($cats);
}

и это dashboard.blade.php с кнопкой редактирования ...

 @foreach($posts as $post)
 <tr>
 <td>{{$post->title}}</td>
 <td><a href="/posts/{{$post->id}}/edit" class="btn btn-default">Edit</a></td>
  </tr>
  @endforeach

Я пытаюсь изменить {{$ post-> id}} на {{$ post-> slug}}, но я получаю FatalThrowableError (E_RECOVERABLE_ERROR) Слишком мало аргументов для функции App \ Http \ Controllers \ PostsController :: edit (), 1 пропущено и ожидается ровно 2

Мне нужно немного помочь разобраться с этим ..

...