2017-03-18 28 views
1

在此之後的文檔:可選/手動追加自定義屬性?

https://laravel.com/docs/5.3/eloquent-serialization#appending-values-to-json

class User extends Model 
{ 
    protected $appends = ['is_admin']; 

    public function getIsAdminAttribute() 
    { 
     return $this->attributes['admin'] == 'yes'; 
    } 
} 

是否可以手動添加我的自定義屬性的查詢?

有,我並不需要這些信息在我的JSON某些情況下,我寧願可以手動添加自定義屬性的查詢,如:

$users = User::append('is_admin') 
    ->get(); 

這顯然不起作用,但我想知道是否有辦法做到這一點。

回答

0

這應該與makeVisible方法一起工作,只要定義了一個存取器或該值在表中。關於該方法

$users = User::all()->makeVisible('is_admin')->toArray();

更多信息可在該文檔直接鏈接的段落上方找到。

+0

因此,換句話說,我必須將'is_admin'設置爲默認隱藏,然後當我想將它包含在JSON中時調用'makeVisible()'? – user7733152

+0

@ user7733152是的,但還有另一種選擇。您可以在'$ visible'數組中包含'is_admin',以防您希望將其包含在該模型的每個響應中 – manniL