簡體   English   中英

Laravel 5.4 Mutator不起作用

[英]Laravel 5.4 Mutator not working

我有一個無法正常工作的轉換器,我在這里瀏覽了一下,嘗試了一些建議,但似乎沒有任何東西可以使它正常工作。

這是我的模特:

...

protected $fillable = [
    'energy_types'
];

...

public function getEnergyTypesAttribute($value)
{
    $types = explode(',', $value);
    $fuels = array();
    foreach($types as $type){
        switch ($type){
            case '2':
                $fuelType = 'Gas (Reticulated)';
                break;
            case '3':
                $fuelType = 'Gas (Bottled)';
                break;
            default:
                $fuelType = 'Electricity';
        }
        $fuels[] = array(   "id" => $type,
                            "name" => $fuelType);
    }

    return $fuels;
}

如此存儲在數據庫中:

energy_types

1

1,2

1

控制器:

if($participant->isRetailer){
       $retail = Retailer::find($participant->id);
       $participant->energyTypes = $retail->energy_types;

如果我在這里轉儲$ retailenergy_types仍然像這樣:

["energy_types"]=>
    string(3) "1,2"

我嘗試更改$ retail的方式 ,重新遷移,甚至嘗試設置屬性(也不起作用)。

我究竟做錯了什么?

首先,Mutator函數類似於“ setEnergyTypesAttribute”。

但是,您的代碼段顯示您正在嘗試定義訪問器。

無論如何,如果您試圖在從數據庫中檢索數據時向模型添加自定義屬性,請按以下步驟進行。

...
protected $appends = ['foo'];
...
public function getFooAttribute()
{
    return $this->attributes['bar'] . ' foo'; 
}

其中“ bar”是模型中的原始屬性。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM