添加喜欢的帖子(laravel)

我有一个用laravel构建的博客。我想在我的帖子中添加喜欢。所以我创建了一个带有表格的模型。Likelikes


这就是我在我的Like 模型中所做的


    public function post(){

        return $this->belongsTo(Post::class);

    }

    public function user(){

        return $this->belongsTo(User::class);

    }

在我的帖子和用户模型中


    public function likes(){

        return $this->hasMany(Like::class);

    }

和我的喜欢表的迁移文件



        Schema::create('likes', function (Blueprint $table) {

            $table->bigIncrements('id');

            $table->foreign('post_id')->references('id')->on('posts');

            $table->foreign('user_id')->references('id')->on('users');

            $table->boolean('value');

            $table->timestamps();

        });

我想以这种方式在我的控制器中设置值!


public function liker($postID, $userID, $value){

        $like = new Like([

            'post_id' => $postID,

            'user_id' => $userID,

            'value' => $value

        ]);

        $like->save();

        return redirect()->back();

    }

但视图返回 419 错误页面。(页面已过期)


并且没有任何更改(无行)添加到我的数据库(喜欢表)!你能帮助我吗?


哆啦的时光机
浏览 107回答 1
1回答

犯罪嫌疑人X

你不需要value一个like,如果它存在,它是一个“like”,你应该使用 is 作为一个数据透视表(你已经有 2 个外国 ID)Schema::create('likes', function (Blueprint $table) {    $table->unsignedInteger('post_id');    $table->unsignedInteger('user_id');    $table->foreign('post_id')->references('id')->on('posts');    $table->foreign('user_id')->references('id')->on('users');    $table->tinyInteger('is_dislike')->default(0);    $table->timestamps();});Post然后声明和之间的关系User邮政public function votedUsers(){ //or simply likes    return $this->belongsToMany(User::class, 'likes')->withPivot('is_dislike')->withTimestamps();}用户public function votedPosts(){    return $this->belongsToMany(Post::class, 'likes')->withPivot('is_dislike')->withTimestamps();}接下来创建一个like 就这样做public function liker($postId, $userId, $value){    $user = User::findOrFail($userId); //or use auth()->user(); if it's the authenticated user    $user->votedPosts()->attach($postId);    return redirect()->back();}改为删除类似的使用detach($postId)。对于不喜欢$user->votedPosts()->attach($postId, ['is_dislike' => 1]);
打开App,查看更多内容
随时随地看视频慕课网APP