2016-04-08 5 views
0

私は 'アーティスト'テーブルと 'パフォーマンス'テーブルを持っています。パフォーマンステーブルは、タイムスタンプである実行時間フィールドを有する。各結果についてlaravel - > get()に追加情報を追加します。

私のアーティストのデータを返すとき、私もパフォーマンスを得るために関係の操作を行います。

$artists = Artist::with('performances', 'performances.stage')->get(); 

私は今が何をしたいかにも時間が表示されます公演関係への情報の他のビットを追加していますパフォーマンス時間フィールドを使用してパフォーマンスまで。

私はフィールドデータを別のフォーマットで使用していますので、ミューテータを使用したくありません。

ありがとうございます!

答えて

1

あなたはまだミューテータを使用できます。 Performanceモデルにtimeフィールドがあるとします。

public function getModifiedTimeAttribute() { 
    return $this->time . ' and something else!'; 
} 

$performance->modified_timeと表示されます。デフォルトでは、この作られたアップフィールドは、モデルのLaravelの配列/ JSON出力には存在しませんが、あなたはそれがそこに表示させるためにモデルにこれを追加することができます。

protected $appends = ['modified_time']; 
0

あなたは、動的属性を使用することができますあなたのPerformanceモデルでは、そのよう:

class Performance extends Model 
{ 
    [...] 

    public function getTimeToNextAttribute() 
    { 
     //calculate Time to next Performance and return it 
    } 
} 

あなたはその後、$業績> time_to_nextを経由してこのプロパティにアクセスすることができます。

関連する問題