php - Laravel:MethodNotAllowedHttpException 错误尝试点赞帖子

标签 php html laravel laravel-blade

在我的网站上,用户可以创建帖子和点赞帖子。在此之前我有一个与类似系统相关的错误,我设法解决了这个问题。但是,由于这个错误,我无法弄清楚它是什么。当用户点击时,会出现以下错误:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

这是我的后 Controller 方法:

public function postLikePost($post_id){
    $loggedin_user = Auth::user()->id;
    $like_user = Like::where(['user_id' => $loggedin_user, 'post_id' => $post_id])->first();
    if(empty($like_user->user_id)){
        $user_id = Auth::user()->id;
        $post_id = $post_id;

        $like = new Like;

        $like->user_id = $user_id;
        $like->post_id = $post_id;
        $like->save();
        return  redirect()->route('events');

    }else{
        return  redirect()->route('events');
    }

}

这是我的 Like 模型:

class Like extends Model
{
    public function user(){
        return $this->belongsTo('App\User');
    }

    public function post(){
        return $this->belongsTo('App\Post');
    }
}

这是我喜欢的迁移:

    Schema::create('likes', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('post_id');
        $table->integer('user_id');
        $table->timestamps();
    });

这是我的路线:

Route::post('/like/{post_id}', 'PostController@postLikePost')->name('like');

这是我对帖子的看法:

<section class="row posts">
    @foreach($posts as $post)
        <div class="col-md-2 col-md-offset-3">
            <article class="post">
                <p>{{ $post->body }}</p>
                <div class="info">Posted by {{ $post->user->first_name }} {{ $post->user->last_name }} on {{ $post->created_at }}</div>
                <p>This post has {{ $post->likes()->count() }} likes </p> 
                <a href="{{ route('like', ['post_id' => $post->id]) }}" class="post-item">Like</a>|
            </article>
        </div>
    @endforeach
</section>

最佳答案

要么将点赞按钮转换为带有 POST 请求的表单,要么通过 Ajax 将请求作为 POST 请求提交。

或者,将您的路由更新为 GET 请求(如果您希望保持当前 Blade 模板不变):

Route::get('/like/{post_id}', 'PostController@postLikePost')->name('like');

关于php - Laravel:MethodNotAllowedHttpException 错误尝试点赞帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888479/

相关文章:

html - 如何修复 'Hero image with svg on bottom (wave)'

php - Laravel 验证 after() - 期望参数 1 是有效的回调

php - 自定义 Spatie Laravel-权限异常消息

php - 在 mySQL 中创建表,名称包括连字符、百分号、句号等

php - Laravel 日志级别,有何不同?

php - preg_match 或运算符

javascript - 如何检测 <s> 或 <del> 标签内或下方的删除线文本

php - 如何根据现有时间戳使用 PHP/MySQL 创建统计工具?

java - 如何通过进行 ajax 调用,使用 java servlet、jquery、json 对象从数据库结果创建 html 页面中的自动完成文本框

php - Laravel 功能测试 ajax 控件