Я хочу повысить или понизить сообщение, опубликованное другим пользователем. Пользователь загрузит сообщение, 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 Столбец «скрыть», где предложение неоднозначно (SQL: выбор существует (выберите * из votes
левое соединение users
на users
. id
= votes
. user_id
левое соединение posts
на posts
. id
= votes
. post_id
где (votes
. hide
= 0 и votes
. user_id
= 3 и votes
. post_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
) ",