いいねボタンの追加

This commit is contained in:
shibafu
2019-04-05 23:10:26 +09:00
parent 34b7cd6c89
commit 225d0854ef
16 changed files with 158 additions and 120 deletions

View File

@@ -2,7 +2,9 @@
namespace App;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
class Ejaculation extends Model
{
@@ -34,4 +36,25 @@ class Ejaculation extends Model
return $v->name;
})->all());
}
public function likes()
{
return $this->hasMany(Like::class);
}
public function scopeWithLikes(Builder $query)
{
if (Auth::check()) {
// (ejaculation_id, user_id) でユニークなわけですが、サブクエリ発行させるのとLeft JoinしてNULLかどうかで結果を見るのどっちがいいんでしょうね
return $query->withCount([
'likes',
'likes as is_liked' => function ($query) {
$query->where('user_id', Auth::id());
}
]);
} else {
return $query->withCount('likes')
->addSelect('0 as is_liked');
}
}
}