0
私はほとんど私のウェブサイトを完成させました。これはもう1つのフィーチャーで終了します。オブジェクトにphp/laravelの値があるかどうかを確認する
私は、テーブルnew_theme_userを持っている:
1 id
2 id_user(integer)
3 id_theme(integer)
4 upVote(tinyint)
だから、これはコントローラです:
class Vote extends Controller {
public function VoteTheme($id, $vote){
$Vote = DB::table('New_Theme_User')->where([
['id_theme', '=', $id],
['id_user', '=', Auth::id()],
])->get(); (1!!!)
if (!isset($vote)) { (2!!!)
if ($vote === 'plus')
DB::table('New_Theme_User')->insert([
['id_theme' => $id, 'id_user' => Auth::id(), 'upVote' => 1],
]);
else
DB::table('New_Theme_User')->insert([
['id_theme' => $id, 'id_user' => Auth::id(), 'upVote' => 0],
]);
if ($vote === 'plus') {
DB::table('New_Themes')
->where('id', $id)
->increment('upVotes', 1);
} else {
DB::table('New_Themes')
->where('id', $id)
->increment('downVotes', 1);
}
}
$Themes = NewTheme::paginate(5);
return redirect()->route('welcome', ['Themes'=>$Themes]);
}
};
1 !!! - オブジェクトを作成する選択クエリです(誰かがすでに投票したいテーマ/投稿の前にすでに投票しているかどうかをデータベースで確認するため)。
2 !!! - if文は、値を持たない - これはユーザーが一度投票して情報をDBに取り込むことができることを意味します。
問題:私は(2 !!!)を回避する方法を見つけることができませんでした私はインターネット上で見つけることができるものは何でも、たとえユーザーがもう一度投票しても解決できないようだが、解決策が見つからないようであっても、うまくいきません。あなた!
何の違いのように行うことができますか? – C2486
$ Voteは文字列の値で、ユーザーが投稿を好き嫌いしています。ユーザーが投票した場合は$ voteが選択値、私が名前を変更しなかった場合は悪いです。混乱のために叫ぶ。 – DomainFlag
私はfinearyが$ answer = DB :: table( 'New_Theme_User') - > where([['id_theme'、 '='、$ id]、 ['id_user'、 '='、Auth: :id()]、 ]) - > get(); $ Voteは配列なので、if(空($ Vote))を使うことができます – DomainFlag