私はlaravelを学び、ブロックされたユーザーリストを設定しようとしています。たとえば、ユーザーがあなたのプロフィールをブロックしてブロックする場合、私がそれをした方法が正しいかどうか疑問に思っています。Laravel 5.2関係hasManyと別の一意の識別子
以下は私が行ったことです。私の主な質問は、新しいIDフィールドを作成してunique_idという識別子を設定する別の方法があります。ここでは、両方のユーザーIDを入れて毎回照会します。
データベース移行:私は、ユーザーをブロックしていたときに
Schema::create('blocked_users', function(Blueprint $table)
{
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('blocked_user_id')->unsigned();
$table->foreign('blocked_user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('unique_id')->unique();
$table->text('reason')->nullable();
$table->timestamps();
});
ユーザモデル
public function BlockedUsers()
{
return $this->hasMany('App\Models\User\BlockedUsers');
}
は、その後、私はUNIQUE_IDとしてブロックされたユーザーIDと現在のユーザーIDを入力します。
これは私がやっている厄介な部分です。簡単な方法があるはずだと信じている。
if (BlockedUsers::whereUniqueId($user->id.Auth::user()->id)->exists()) {
$blocked = 1;
} else {
$blocked = 0;
}
私はuser_idのは=現在のユーザーにあるとblocked_user_id、ユーザープロファイルIDに等しいかどうかを確認するために、ユーザーモデルで機能を設定する方法を考えるようにしようとしています。
私は考えることができるすべては
public function isUserBlocked()
{
return $this->hasOne('App\Models\User\BlockedUsers', 'blocked_user_id');
}
である。しかし、明らかにこれは動作しないでしょう。
本当に申し訳ありません。ユーザーがブロックされているかどうかを確認する方法をすでに設定しています。私が行ったやり方が正しいかどうか疑問に思っていました。私はこれを行ったが、私がやった方法が正しいかどうかは疑問だ。 "私の主な質問は、IDを設定してunique_idと呼ばれる新しいdbフィールドを作成する別の方法があります。ここでは、両方のユーザーIDを入れ、毎回クエリを実行します。" –
@ Unifxはい、私が上で概説した方法はそれを必要としません。 – Ohgodwhy
ああ申し訳ありませんが、私はその部分を見ていない、もう一度ありがとう –