2016-06-30 9 views
0

に計算フィールドを追加します。コメントモデルには、id、comment、tagフィールドがあります。は、私は、このようなこの1としてクエリを持つコントローラを持ってLaravelモデルクエリ

私がしたいことは、このモデルのようなクエリでは、id、comment、tag、およびtag_translatedというフィールドが返されます。後者はLangファサードを使用したタグの単なる翻訳です。

これは、$コメントを繰り返してフィールドを追加するコントローラのforを使って解決できましたが、tag_translaredフィールドを必要とするすべてのコントローラでそれを行う必要があります。このようなフィールドを含むようにモデルに頼む方法はありますか?

+1

http://stackoverflow.com/questions/17232714/add-a-custom-attribute-to-a-laravel-eloquent-model-on-load この –

答えて

4

あなたCommentモデルでこれを追加します。

protected $appends = ['tag_translated']; 

public function getTagTranslatedAttribute() 
{ 
    return 'the translated tag'; 
} 

は、この情報がお役に立てば幸いです。

3

はいですか?ちょうどあなたのCommentモデル

public function getTagTranslatedAttribute() 
{ 
    return Lang::methodYouWish($this->tag); 
} 

にこれを追加し、あなたはあなただけCommentクラスに追加し、あなたのtoArray方法を変更することができ、コメントインスタンスから

$comment->tag_translated; 

EDIT

をこのプロパティにアクセスすることができます

protected $appends = ['tag_translated']; 

、その後

$comment->toArray(); 
+0

感謝を参照してください!これは、その属性のみを取得します。Idは、$ post-> commentsのように親モデルを通して呼び出すときに得られた結果にIDを追加するのが好きです。その後、idはid、comment、tag、translated_tagのようなものを取得するのが好きです。 – Jonathan

+0

それは魅力のように働いた – brunoramonalmeida

関連する問題