微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缺少路由所需的参数?

如何解决缺少路由所需的参数?

首先我想说我的英语不太好,这是我第一次在这里发帖,所以如果我做错了什么,请见谅!好吧,我开始用 Laravel 练习,我正在尝试为用户创建一个可以喜欢帖子的网址。我的 url 和控制器现在是这个 Route::post('/post/{post}/like',[LikeController::class,'postLike'])->name('post.like');,其中 post 是我试图通过我的表单操作属性传递的帖子。这是我的表格:

@props(['post'])

<div {{ $attributes->merge(['class' => 'card-footer d-flex justify-content-around']) }}>
    <form action= "{{ route('post.like',$post) }}"  method="post" >
        @csrf
        <button>submit</button>
    </form>
</div>

post prop其实就是帖子的id!我将它作为参数传递给这个组件,如下所示::post="$post->id" i have also tried with associative array without it be necessary if u have only one parameter to pass,but still didnt work!{{ route('post.like',['post'=>$post]) }}``` 如果你想知道 id 是否实际上没有传递到组件中,我尝试了 {{ dd($post) }} 并且它打印了它。我的控制器就是这个,它现在实际上没有做任何事情。我只是想传递 id:

class LikeController extends Controller
{
    public function postLike(Post $post) {
        dd($post);
    }
}

毕竟我得到了错误缺少 [Route: post.like] [URI: post/{post}/like] [Missing parameter: post] 的必需参数。 (查看:blog\resources\views\components\post\interaction.blade.PHP

我有两天的时间来查找问题,我仍在尝试这一刻我正在发送这个......我找不到错误在哪里!如果你能帮助我,我将不胜感激!提前准备

解决方法

在 web.php 中试试这个,看看路由模型绑定是否运行良好

Route::post('/post/{post}/like',function($post){
   dd($post);
})->name('post.like');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。