2016-04-28 8 views

答えて

1

あなたは(アクセサを使用して)これを試すことができます:あなたはまた、場合のtoArray()メソッドをオーバーライドすることができます

モデル

public function getIdAttribute() { 
     return $this->attributes['_id']; 
} 

コントローラテスト

$user = User::find(1); 
// this will call getIdAttribute which will return the `_id` 
dd($user->id); 

あなたはそれを表示したい:

モデル

// .. 
// getIdAttribute() 
// .. 
public function toArray() 
{ 
    $array = parent::toArray(); 
    $array['id'] = $this->id; 
    unset($array['_id']); 
    return $array; 
} 

コントローラテスト

$user = User::find(1); 
dd($user->toArray()); 
1

これを行うための別の方法として使用している変圧器(http://fractal.thephpleague.com/transformers/)。ここにLaravelのサービスプロバイダがあります(https://github.com/gathercontent/laravel-fractal)。 「

public function getIdAttribute() { return $this->attributes['_id']; }

をしかし、あなた: それはあなたが「ID」フィールドでのみ行う必要がある場合zorxが語ったように。もちろん、エレガントな方法:)

で、私がやることをやるだろうおそらく、これを必要とするモデルのための親であるBaseModelまたはabstractModelクラスにそれを置きます。

関連する問題