2016-11-22 2 views
3

多次元コレクションからプロパティを削除する方法はありますか?Laravel Collections - 多次元コレクションでの例外の使用

例えば私は、私は同じコレクションを取得しようとしたが、キー/プロパティポイントなしだ

public function getPossibleAnswersAttribute() 
{ 
    return collect([ 
     [ 
      'option' => 'A', 
      'answer' => $this->answer_1, 
      'points' => $this->answer_1_value 
     ], 
     [ 
      'option' => 'B', 
      'answer' => $this->answer_2, 
      'points' => $this->answer_2_value 
     ], 
     [ 
      'option' => 'C', 
      'answer' => $this->answer_3, 
      'points' => $this->answer_3_value 
     ], 
     [ 
      'option' => 'D', 
      'answer' => $this->answer_4, 
      'points' => $this->answer_4_value 
     ] 
    ]); 
} 

public function getPossibleAnswersWithoutPointsAttribute() 
{ 
    $answers = $this->getPossibleAnswersAttribute() 
    ->except(['0.points']); 
    return $answers; 
} 

を持っています。

私は私が最初からそれを削除->except(['0.points']);を行うことができます発見したとして、私は、これを行うための、より流暢な方法がある願っていますしかし、私はそれを

->map(function ($item) { 
    unset($item['points']); 
    return $item; 
}); 

ような何かを行うことができます知っています、私はキーとして数えられる魔法のようなキーワードがあると思っていましたか? ->except(['#.points']);と同様に、それぞれ対応していますか?

答えて

0

今のところ(Laravel 5.3)このmap(またはtransform)メソッドよりも単純なものはありません。後でコードに戻ったときに理解しやすいものは何もありません。

を拡張して、と同じようにexceptにワイルドカードを実装することもできますが、私にとってはそれが過剰です。