我还在做一个点赞按钮.这一次,我用Livewire做的,因为它更漂亮.由于缺乏知识,我将这段代码拼凑在一起,它部分起到了作用:点赞/Collection 夹存储在数据库中,点赞时心脏的 colored颜色 会改变,当你只有1个点赞时,也会删除功能.但当你有多个赞并删除/不像其中一个时,所有其他赞都会失go 它们的 colored颜色 ,包括被删除的一个,当你刷新时,只有最后一个被删除,其他的恢复 colored颜色 并仍然在数据库中.这个问题能解决吗?
namespace App\Http\Livewire;
use Livewire\Component;
use Illuminate\Support\Facades\Auth;
use App\Models\Vacature;
use App\Models\Favoriet;
use Illuminate\Contracts\View\View;
use WithPagination;
class Vacatures extends Component
{
public $orderBy = "Sorteer: Nieuwste Vacatures";
public $vacids = [];
public $favoriet;
public $updatePage = false;
public function mount()
{
if (Auth::id()) {
$user = Auth::user();
$this->favoriet = Favoriet::where('user_id', $user->id)->get();
foreach ($this->favoriet as $this->favoriet) {
$this->vacids[] = $this->favoriet->vacature_id;
}
}
}
public function saveFavoriet($id)
{
if (Auth::id()) {
$user = Auth::user();
$vacature = Vacature::find($id);
$this->favoriet = new Favoriet;
$this->favoriet->user_id = $user->id;
$this->favoriet->vacature_id = $vacature->id;
$this->favoriet->vacature_naam = $vacature->naam;
$this->favoriet->beschrijving = $vacature->beschrijving;
$this->favoriet->save();
$this->updatePage = false;
$this->mount();
} else {
return redirect('login')->with('message',
'Log in om je favorieten op te slaan, je kunt ze dan altijd terugvinden in jouw favorieten menu.');
}
}
public function deleteFavoriet()
{
$this->favoriet->delete();
$this->updatePage = true;
}
}
View个
<div class="col-lg-3 d-flex align-items-center justify-content-center">
<div class="text-center"><a href="{{url('vacature_details',$vac->id)}}" class="buy-btn">Bekijk Vacature</a>
</div>
</div>
@if(in_array($vac->id, $this->vacids))
@if($this->updatePage==false)
<div>
<a wire:click.prevent="deleteFavoriet()" class="bi bi-heart-fill fa-lg m-2" href=""
data-tooltip="tooltip" data-placement="top" title="Is al favoriet">
</a>
<div>
</div>
</div>
@else
<div>
<a wire:click.prevent="saveFavoriet({{ $vac['id'] }})" class="bi bi-heart fa-lg m-2" href=""
data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
</a>
</div>
@endif
@else
<div>
<a wire:click.prevent="saveFavoriet({{ $vac['id'] }})" class="bi bi-heart fa-lg m-2" href=""
data-tooltip="tooltip" data-placement="top" title="Voeg toe aan favorieten">
</a>
</div>
@endif
<div class="border"></div>
@endforeach
</div>
</div>
@endif
</div>
</section>
我也试着和用户建立了很多关系,但所有的赞都被一下子删除了.