簡體   English   中英

上載或下載到用戶帖子

[英]Upvote or downvote to the users posts

我想贊或贊一下其他用戶發布的帖子。用戶將上傳一個帖子,i

遷移投票表

public function up()
{
    Schema::create('votes', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('user_id');
        $table->foreign('user_id')->references('id')->on('users');
        $table->unsignedInteger('post_id');
        $table->foreign('post_id')->references('id')->on('posts');
        $table->integer('vote');
        $table->boolean('hide')->default(0);
        $table->timestamps();
    });
}

路線文件

api.php

Route::group(['middleware'=>[
                'auth:api', \App\Http\Middleware\OnlyRegisteredUsers::class]
            ], function(){
    /**
     * Group for registered users only APIs
     */
    Route::post('saveMedia','UserController@saveMedia');
    Route::post('voteToPost','UserController@voteToPost');
});

調節器

public function voteToPost(Request $request)
{
    $userid = $request->user()->id;
    $postid = $request->get('post_id');
    $vote = $request->get('vote');
    $votecount = DB::table('votes')->where('user_id', $userid)->where('post_id', $postid)->wherea('hide', 0)->count();
    if($votecount == 0){
        DB::table('votes')
            ->leftJoin('users', 'users.id', '=', 'votes.user_id')
            ->leftJoin('posts', 'posts.id', '=', 'votes.post_id')
            ->where(['votes.hide' => 0, 'votes.user_id' =>$userid, 'votes.post_id' =>$postid])
            ->updateOrInsert([
                'user_id' => $userid,
                'post_id' => $postid,
                'vote' => $vote,
                'hide' => 0,
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now()
            ]);
    }
}

我收到以下錯誤“消息”:“SQLSTATE [23000]:完整性約束違規:1052列‘隱藏’在where子句是曖昧(SQL:選擇存在(SELECT * FROM votes左加入usersusersid = votesuser_id左連接postspostsid = votespost_id其中( voteshide = 0和votesuser_id = 3和votespost_id = 6)和( user_id = 3和post_id = 6和vote = 1和hide = 0和created_at = 2018-10-05 11:44:38和updated_at = 2018-10-05 11:44:38)) exists )“,

public function voteToPost(Request $request){
        $userid = $request->user()->id;
        $postid = $request->get('post_id');
        $vote = $request->get('vote');
        $user = User::where(['id'=>$userid, 'hide'=>0])->first();
        $post = DB::table('posts')->where(['id'=>$postid, 'hide'=>0])->first();
        if($user && $post && in_array($vote, [0,1,-1])){
                DB::table('votes')
                    ->updateOrInsert(['user_id'=>$userid, 'post_id'=>$postid],[
                        'user_id' => $userid,
                        'post_id' => $postid,
                        'vote' => $vote,
                        'hide' => 0,
                        'created_at' => Carbon::now(),
                        'updated_at' => Carbon::now()
                    ]);
                return ['message'=>'ok'];
        }
        return abort(403, 'Invalid request');
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM