如何解决缺少路由所需的参数?
首先我想说我的英语不太好,这是我第一次在这里发帖,所以如果我做错了什么,请见谅!好吧,我开始用 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 举报,一经查实,本站将立刻删除。