いいねしたユーザーの一覧を表示
This commit is contained in:
		@@ -46,14 +46,23 @@ class Ejaculation extends Model
 | 
			
		||||
    {
 | 
			
		||||
        if (Auth::check()) {
 | 
			
		||||
            // (ejaculation_id, user_id) でユニークなわけですが、サブクエリ発行させるのとLeft JoinしてNULLかどうかで結果を見るのどっちがいいんでしょうね
 | 
			
		||||
            return $query->withCount([
 | 
			
		||||
            return $query
 | 
			
		||||
                ->with(['likes.user' => function ($query) {
 | 
			
		||||
                    $query->where('is_protected', false)
 | 
			
		||||
                        ->orWhere('id', Auth::id());
 | 
			
		||||
                }])
 | 
			
		||||
                ->withCount([
 | 
			
		||||
                    'likes',
 | 
			
		||||
                    'likes as is_liked' => function ($query) {
 | 
			
		||||
                        $query->where('user_id', Auth::id());
 | 
			
		||||
                    }
 | 
			
		||||
                ]);
 | 
			
		||||
        } else {
 | 
			
		||||
            return $query->withCount('likes')
 | 
			
		||||
            return $query
 | 
			
		||||
                ->with(['likes.user' => function ($query) {
 | 
			
		||||
                    $query->where('is_protected', false);
 | 
			
		||||
                }])
 | 
			
		||||
                ->withCount('likes')
 | 
			
		||||
                ->addSelect('0 as is_liked');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								resources/assets/sass/app.scss
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								resources/assets/sass/app.scss
									
									
									
									
										vendored
									
									
								
							@@ -27,3 +27,7 @@ $primary: #e53fb1;
 | 
			
		||||
.like-count:not(:empty) {
 | 
			
		||||
  padding-left: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.like-users {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
}
 | 
			
		||||
@@ -29,6 +29,19 @@
 | 
			
		||||
        {!! Formatter::linkify(nl2br(e($ejaculation->note))) !!}
 | 
			
		||||
    </p>
 | 
			
		||||
@endif
 | 
			
		||||
<!-- likes -->
 | 
			
		||||
@if ($ejaculation->likes_count > 0)
 | 
			
		||||
    <div class="my-2 py-1 border-top border-bottom d-flex align-items-center">
 | 
			
		||||
        <div class="ml-2 mr-3 text-secondary"><span class="oi oi-heart" title="いいねしたユーザー"></span></div>
 | 
			
		||||
        <div class="like-users flex-grow-1 overflow-hidden">
 | 
			
		||||
            @foreach ($ejaculation->likes as $like)
 | 
			
		||||
                @if ($like->user !== null)
 | 
			
		||||
                    <a href="{{ route('user.profile', ['name' => $like->user->name]) }}"><img src="{{ $like->user->getProfileImageUrl(30) }}" width="30" height="30" class="rounded" data-toggle="tooltip" data-placement="bottom" title="{{ $like->user->display_name }}"></a>
 | 
			
		||||
                @endif
 | 
			
		||||
            @endforeach
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@endif
 | 
			
		||||
<!-- actions -->
 | 
			
		||||
<div class="ejaculation-actions">
 | 
			
		||||
    <button type="button" class="btn btn-link text-secondary"
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,19 @@
 | 
			
		||||
                                {!! Formatter::linkify(nl2br(e($ejaculation->note))) !!}
 | 
			
		||||
                            </p>
 | 
			
		||||
                        @endif
 | 
			
		||||
                        <!-- likes -->
 | 
			
		||||
                        @if ($ejaculation->likes_count > 0)
 | 
			
		||||
                            <div class="my-2 py-1 border-top border-bottom d-flex align-items-center">
 | 
			
		||||
                                <div class="ml-2 mr-3 text-secondary"><span class="oi oi-heart" title="いいねしたユーザー"></span></div>
 | 
			
		||||
                                <div class="like-users flex-grow-1 overflow-hidden">
 | 
			
		||||
                                    @foreach ($ejaculation->likes as $like)
 | 
			
		||||
                                        @if ($like->user !== null)
 | 
			
		||||
                                            <a href="{{ route('user.profile', ['name' => $like->user->name]) }}"><img src="{{ $like->user->getProfileImageUrl(30) }}" width="30" height="30" class="rounded" data-toggle="tooltip" data-placement="bottom" title="{{ $like->user->display_name }}"></a>
 | 
			
		||||
                                        @endif
 | 
			
		||||
                                    @endforeach
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        @endif
 | 
			
		||||
                        <!-- actions -->
 | 
			
		||||
                        <div class="ejaculation-actions">
 | 
			
		||||
                            <button type="button" class="btn btn-link text-secondary" data-toggle="tooltip" data-placement="bottom" title="同じオカズでチェックイン" data-href="{{ route('checkin', ['link' => $ejaculation->link, 'tags' => $ejaculation->textTags()]) }}"><span class="oi oi-reload"></span></button>
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,19 @@
 | 
			
		||||
                        {!! Formatter::linkify(nl2br(e($ejaculation->note))) !!}
 | 
			
		||||
                    </p>
 | 
			
		||||
                @endif
 | 
			
		||||
                <!-- likes -->
 | 
			
		||||
                @if ($ejaculation->likes_count > 0)
 | 
			
		||||
                    <div class="my-2 py-1 border-top border-bottom d-flex align-items-center">
 | 
			
		||||
                        <div class="ml-2 mr-3 text-secondary"><span class="oi oi-heart" title="いいねしたユーザー"></span></div>
 | 
			
		||||
                        <div class="like-users flex-grow-1 overflow-hidden">
 | 
			
		||||
                            @foreach ($ejaculation->likes as $like)
 | 
			
		||||
                                @if ($like->user !== null)
 | 
			
		||||
                                    <a href="{{ route('user.profile', ['name' => $like->user->name]) }}"><img src="{{ $like->user->getProfileImageUrl(30) }}" width="30" height="30" class="rounded" data-toggle="tooltip" data-placement="bottom" title="{{ $like->user->display_name }}"></a>
 | 
			
		||||
                                @endif
 | 
			
		||||
                            @endforeach
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                @endif
 | 
			
		||||
                <!-- actions -->
 | 
			
		||||
                <div class="ejaculation-actions">
 | 
			
		||||
                    <button type="button" class="btn btn-link text-secondary" data-toggle="tooltip" data-placement="bottom" title="同じオカズでチェックイン" data-href="{{ route('checkin', ['link' => $ejaculation->link, 'tags' => $ejaculation->textTags()]) }}"><span class="oi oi-reload"></span></button>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user