我想让不同故事的收藏夹按钮正常工作



我在PHP Laravel项目中遇到了一个问题。我有一个最喜欢的故事按钮。不同的用户将有一个选项,使最喜欢的故事,他们喜欢。"故事"one_answers"Favorite_Story"有单独的表格。我从stories表中提取了所有stories,并根据user_id从"favo_story"表中提取favo_store。

这是我的控制器代码

public function fanfiction(){
$user_id = session('userid');
$data['stories'] = DB::Table('stories')->orderBy('story_id', 'des')->get();
$data['fav_story'] = DB::Table('favorite_story')->where('user_id', $user_id)->get();
return view('fanfiction', $data);
}

这是我的视图代码

@foreach($stories as $row)
<?php $story_id = $row->story_id; ?>
<article class="post excerpt">
<a href="{{ url('read_fanfic/'.$row->story_id) }}" id="featured-thumbnail">
<div class="featured-thumbnail">
@if($row->img == '')
<img class="img-responsive" width="30%" src="{{ url('public/uploads/fanfic/no_img.png') }}" alt="Story Image" />
@else
<img class="img-responsive"  width="30%" src="{{ url('public/uploads/fanfic/'.$row->img) }}" alt="Story Image" />
@endif
</div>                      
</a>
<div class="post-content" style="text-align:justify;">
{{ $row->story_desc }};
<h3>{{ $row->story_title }}</h3>
</div>
<div class="readMore">
@if(Session('username'))
@foreach($fav_story as $row1)
@if($row1->story_id == $story_id)
<a href="{{ url('member/fav_story/'.$row->story_id) }}" style="background:#59AAE1;" > Unfavorite</a>
@elseif($story_id)
<a href="{{ url('member/fav_story/'.$row->story_id) }}" style="background:#1dbf73;" > Favorite</a>
@endif
@endforeach
@endif
</div>
</article>
@endforeach

被标记为最喜欢的故事的故事将显示一个带有该特定故事的不喜欢按钮,再次单击该按钮将使其成为最喜欢的。问题是,它显示了特定故事的最喜欢和不喜欢按钮,而不是显示需要有这个按钮才能成为最喜欢的按钮。

尝试这个

在控制器中修改查询:

// this will store all story ids in an array
$data['fav_story'] = DB::table('favorite_story')->where('user_id', $user_id)->pluck('story_id');

您的刀片视图

...
<div class="readMore">
@if(Session('username'))
@if(in_array($row->story_id, $fav_story))
<a href="{{ url('member/fav_story/'.$row->story_id) }}" style="background:#59AAE1;" > Unfavorite</a>
@else
<a href="{{ url('member/fav_story/'.$row->story_id) }}" style="background:#1dbf73;" > Favorite</a>
@endif
@endif
</div>
...

编辑

$row->id更新为$row->story_id

最新更新