2013-02-24 26 views
0

我剛開始第一次使用Laravel框架創建應用程序。Laravel Eloquent:名稱屬性和db行的不同

雄辯似乎是一個非常強大和節省代碼的工具,但我無法弄清楚如何在數據庫表中使用不同的屬性名稱。

這裏我的衝突:

數據庫:iddog,dtname,dtbirth,dtfoo,fimom,fidad
屬性:ID,姓名,生日,FOO,媽媽,爸爸

有在Laravel框架中從Eloquent擴展的模型中可以做到這一點?命名屬性與關聯的數據庫字段不同?

還是不是很酷,像我這樣在數據庫表中調用字段?

提前致謝!

回答

0

爲什麼數據庫的名稱與模型不同?

雖然你可以做到這一點 - 你只是爲自己創造工作,並引入可能的新錯誤。只需使用數據庫名稱即可。

如果你必須 - 檢查出Getters & Setters

+0

我總是使用特定的命名慣例當我模型中不需要的數據庫表建模時。我將重命名數據庫表。 Ty爲您提供幫助。 – ffraenz 2013-02-24 14:38:33

0

現在,用laravel 5.1我們稱之爲訪問者而不是Getters & Setters。

因此,這些天我們已經訪問器創建這樣

public function getPlusFiveAttribute() 
{ 
    return $this->plus_five + 5; 
} 

不幸的是,如果你已經有一個名爲「plus_five」表字段的新屬性 - 這個訪問將無法工作。

你需要再這樣下去,它工作

public function getPlusFiveAttribute() 
{ 
    return $this->attributes['plus_five'] + 5; 
} 

這裏是另一種方法是工作

public function getPlusFiveAttribute($value) 
{ 
    return $value + 5; 
} 
+1

這些是訪問器。在你的第一個例子中,最好是'$ this-> attributes ['plus_five'] + 5'。 – user2094178 2016-03-03 00:15:37

+0

謝謝! $ this-> attributes ['plus_five'] + 5 - 有效,它是一種新的語法。大。它是訪問者,而不是變種者,你是對的。我改變了答案。再次感謝。 – 2016-03-03 01:40:56

相關問題