私はlaravelとprotected $属性とmutatorsにいくつか問題があります。Laravelで保護された属性とMutators
私はポイントでユーザーのランキングを持っています。私は、ユーザモデルに、順位付けを伴う別の属性を追加したい。私はこのようなパブリック関数持つユーザーモデルでは
:
public function getRankPositionAttribute(){
$userPoints= Ranking::where('user_id','=',$this->id)->first();
$userPosition = Ranking::where('points','>',$userPoints->points)->count()+1;
return $userPosition;
}
を私はまた、設定:
protected $attributes = array('RankPosition'='');
しかし、それは働いていない(私は属性でRankPositionのような値が表示されません)。奇妙なことは、私はこのように(例えば)値を追加するときということです:
protected $attributes =array('test'=>'yes');
Laravelも...テスト
が表示されていない。しかし、私が追加したときに、この:
protected $appends = array('RankPosition');
と私のコントローラで私はすべてのユーザーを見つけてjsonに応答し、jsonレスポンスで正しい値でRankPositionのような値を参照しています... :(
「私のlaravel」が保護された$属性をスキップするのはなぜですか?
私を助けてください。
Laravel mutatorsは魔法の方法です。あなたは 'Model :: $ attributes'のpropetyであなたのミューテータを見ることはできません。 – Skysplit