php - 将参数传递给路由: Missing required parameters for [Route: post] error

标签 php laravel routes

我正在尝试将参数id从我的 View 传递到路线。我认为 blog.blade.php,我做了以下操作:

<a href="{{ route('post', ['id' => $post->id ] ) }}" class="btn btn-primary">Read More </a>    

我的路线如下:

Route::get('blog/post/{id}', [
  'uses' =>  'PostController@getPost',
  'as' => 'post'
]);

我的 Controller 操作如下所示:

public function getPost( $id)
{
    $post = Post::where('id','=',$id)->with('likes')->with('user')->first();
    return view('section.blog', ['post' => $post]);
}

但是每当我加载页面时,我都会收到以下错误

Missing required parameters for [Route: post] [URI: blog/post/{id}]. (View: D:\Web Development\ACES\resources\views\section\blog.blade.php)

我通过在 View 上显示 $post->id 的值来检查它是否存在,并且它存在

更多
我尝试从 route 删除 {id} 部分,并将其设置为

Route::get('blog/post/', [
  'uses' =>  'PostController@getPost',
  'as' => 'post'
]);

页面已加载,但链接如下所示:

http://localhost/blog/post?id=2

然后我在 Controller 中收到错误

为什么会发生这种情况?为什么参数没有传递到路由?
我使用的是 Laravel 5.7

更新

php artisan route:list 看起来像这样

    +--------+----------+---------------------------------+------------------+------------------------------------------------------------------------+--------------+
| Domain | Method   | URI                             | Name             | Action                                                                 | Middleware   |
+--------+----------+---------------------------------+------------------+------------------------------------------------------------------------+--------------+
|        | GET|HEAD | /                               | home             | Closure                                                                | web          |
|        | GET|HEAD | about-us                        | about            | Closure                                                                | web          |
|        | GET|HEAD | aces-admin                      | admin.home       | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/all-posts            | admin.allposts   | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/all-users            | admin.allusers   | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/edit-events          | admin.events     | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/edit-messages        | admin.messages   | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/edit-study-materials | admin.study      | Closure                                                                | web          |
|        | GET|HEAD | aces-admin/manage-photos        | admin.photos     | Closure                                                                | web          |
|        | GET|HEAD | api/user                        |                  | Closure                                                                | api,auth:api |
|        | GET|HEAD | blog                            | blog             | App\Http\Controllers\PostController@getIndex                           | web          |
|        | GET|HEAD | blog/create                     | create           | Closure                                                                | web          |
|        | GET|HEAD | blog/post/{id}                  | post             | App\Http\Controllers\PostController@getPost                            | web          |
|        | GET|HEAD | events                          | event            | Closure                                                                | web          |
|        | GET|HEAD | gallery                         | gallery          | Closure                                                                | web          |
|        | GET|HEAD | login                           | login            | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest    |
|        | POST     | login                           |                  | App\Http\Controllers\Auth\LoginController@login                        | web,guest    |
|        | POST     | logout                          | logout           | App\Http\Controllers\Auth\LoginController@logout                       | web          |
|        | POST     | password/email                  | password.email   | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest    |
|        | GET|HEAD | password/reset                  | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest    |
|        | POST     | password/reset                  | password.update  | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest    |
|        | GET|HEAD | password/reset/{token}          | password.reset   | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest    |
|        | GET|HEAD | register                        | register         | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest    |
|        | POST     | register                        |                  | App\Http\Controllers\Auth\RegisterController@register                  | web,guest    |
+--------+----------+---------------------------------+------------------+------------------------------------------------------------------------+--------------+

最佳答案

尝试第二种方法并更新您的 Controller ,如下所示。

public function getPost(Request $request)
{
    $id = $request->get('id');
    $post = Post::where('id','=',$id)->with('likes')->with('user')->first();
    return view('section.blog', ['post' => $post]);
}

关于php - 将参数传递给路由: Missing required parameters for [Route: post] error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53997046/

相关文章:

php - 是否有关于在您的 Web 应用程序中使用 SSL 的任何好的初学者教程?

Laravel - CK 编辑器在上传图片时返回 419 http 状态

php - Laravel - 碳不考虑夏令时

reactjs - Routes.push() 在 NextJS 上没有按预期工作

ruby-on-rails - Rails 应用程序 GET 路线在生产模式下不起作用

php - 如何在 Laravel 4 中构建带有子应用程序的平台?

php - 如何连接两个数据库表并从连接表中返回最低价格

php - 如何检查 'YYYY-MM-DD' 格式的日期和 PHP 中 'Unix Time stamp' 格式的日期?

php - Laravel - 从表单中获取数据

Angular 2获取当前路线