【发布时间】:2022-01-18 22:42:22
【问题描述】:
我今天遇到了一个简单的问题。我在 Livewire 组件中工作,我有一个对象集合,当我单击一个对象时,我想将它添加到一个数组中(有效),然后想从集合中删除它 - 所以那个对象不是可点击了。 我有什么:
public function addPartToUsage($partId){
$partToAdd = Part::where('id', '=', $partId)->first();
$this->verwendung[] = ['id'=> $partToAdd->id, 'partBezeichnung'=>$partToAdd->id.':'.$partToAdd->zeichnungsnummer.' - '.$partToAdd->artikelbezeichnung];
$this->partsClient = Part::where('artikelbezeichnung', 'LIKE', '%' . $this->inputsearchpart . '%')
->orWhere('zeichnungsnummer', 'LIKE', '%' . $this->inputsearchpart . '%')
->orderBy('artikelnummer')
->get();
foreach ($this->verwendung as $item) {
if($this->partsClient->contains('id', $item['id'])){
$this->partsClient->forget($this->partsClient->where('id', $item['id'])->id);
} } }
但它不起作用,因为我不知道包含匹配 id 的元素的键。
$this->verwendung 是我的数组,其中包含 $this->verwendung[0]['id'] 中的 id 和 $this->partsClient 是我的集合,来自数据库。
如何修改集合而不将其转换为数组,然后检查匹配的 ID,然后重新收集? 或者更好的是如何检索集合的匹配键,以便我可以使用 forget() ? 感谢这里的所有人!
【问题讨论】:
标签: laravel collections