我做了一个喜欢/Collection 按钮(心形),当你点击它时,它会变成蓝色.这很好,除了当你点击另一个心形时,第一个蓝色的心形会再次变成白色,只有最后一个点击的心形会变成蓝色.

每次你点击另一颗心时,只有最后一颗点击的心会变成蓝色!其余的都很好,但我不知道为什么会这样.有人知道吗?

class Products extends Component
{
    public $orderBy;
    public $vacid;
   
    public function mount()
    {
        $this->orderBy = "Sorteer: Nieuwste Vacatures";

        if(Auth::id()) {
        $user = Auth::user();
        $fav = Favoriet::where('user_id','=',$user->id)->get();
        foreach($fav as $fav){
            $this->vacid = $fav->vacature_id;
        }
    }
}
     @if($vac->id == $vacid)
          <a class="bi bi-heart-fill fa-lg m-2" href="{{url('favorieten',$vac->id)}}" 
           data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
          </a>
@else
<a class="bi bi-heart fa-lg m-2" href="{{url('favorieten',$vac->id)}}" 
           data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
          </a>
          @endif
          <div class="border"></div>
          @endforeach 
        </div> 
         

推荐答案

这确保了所有喜欢的项目都存储在$this->vacids数组中,然后您可以判断当前的$vac->id是否在该数组中.这样,每个喜欢的项目将在点击后保留其蓝色.

class Products extends Component
{
    public $orderBy;
    public $vacids = []; // Change to array
   
    public function mount()
    {
        $this->orderBy = "Sorteer: Nieuwste Vacatures";

        if (Auth::id()) {
            $user = Auth::user();
            $fav = Favoriet::where('user_id', '=', $user->id)->get();
            foreach ($fav as $fav) {
                $this->vacids[] = $fav->vacature_id; // Store all $vac->id values in an array
            }
        }
    }
}

// ...

@if (in_array($vac->id, $this->vacids))
    <a class="bi bi-heart-fill fa-lg m-2" href="{{url('favorieten',$vac->id)}}" 
        data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
    </a>
@else
    <a class="bi bi-heart fa-lg m-2" href="{{url('favorieten',$vac->id)}}" 
        data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
    </a>
@endif

Php相关问答推荐

Laravel通过(扩展FormRequest类)方法验证表单请求

管理员订单列表中的自定义列与WooCommerce 8.6.1一起消失

WooCommerce中仅在单一产品和产品档案页面中将小数设置为大写

在不超过PHP时间限制的情况下,在Laravel中高效地插入批量数据(25万条记录)?(队列、多租户)

Mysqli_stmt::Execute():结果字段元数据中存在过早的EOF

使用PHP阅读XML提要

将产品类别添加到WooCommerce产品附加信息

为什么正则表达式与得到的文本块之前得到的也行?

根据选定的字段值显示或隐藏WooCommerce注册字段

使用PHP编码的字符串与使用OpenSSL编写的shell 代码之间的差异

是否重新排序多维数组元素以将所有子数组中的子数组移动到元素列表的底部?

当配置的URL为空时禁用Laravel Slack日志(log)记录

Shopware 6 插件:如何删除/迁移布尔配置到多选配置

在php中计算两个没有假期的日期之间的小时差

PHP 在数组中搜索值

如何在 Laravel 中修改嵌套数组的键?

在 laravel 中更新表单时如何在 Select 选项中保留旧值?

无法在 Laravel 10 中安装 jenssegers/mongodb

如何将子查询结果添加到学说 2 中主查询的末尾?

如何在字符串constant-string-NUMBER-*中获取 NUMBER?