我實現了一個名爲schedules
的表,它有一個名爲day
的字段。
日期爲tinyInteger
數據類型,表示星期六或星期三的星期幾。
至於獲取查詢和呈現到視圖如何將tinyInt
轉換爲代表String
?
另外我擔心MVC體系結構代表一天的字符串與視圖有關,而不是模型本身,所以對於創建輔助類並將整數轉換爲字符串有什麼看法?Laravel將整數映射到字符串
0
A
回答
2
我會做在一個訪問:
http://laravel.com/docs/5.1/eloquent-mutators#accessors-and-mutators
因此,也許這樣的事情在你Schedules
型號:
public function getDayAttribute($day)
{
// Assuming your integer value is between 0 and 6
if($day >= 0 && $day <= 6) {
return jddayofweek($day, 1);
}
return null;
}
注意這是假定你的整數是0和6之間,和0是星期一。
查看jddayofweek瞭解詳情。
所以,現在當您撥打$schedule->day
時,您將收到一個字符串,如Monday
。
另外,如果你不想覆蓋day
屬性完全這樣,你可以僞屬性添加到您的模型:
protected $appends = ['day_name'];
public function getDayNameAttribute()
{
// Assuming your integer value is between 0 and 6
if($this->day >= 0 && $this->day <= 6) {
return jddayofweek($this->day, 1);
}
return null;
}
現在你可以使用$schedule->day
獲得整數值,或$schedule->day_name
獲取字符串。
0
我會建議您查看此庫: https://packagist.org/packages/nesbot/carbon 它通過作曲家安裝了700多萬次。
基本上,它將爲您提供大量通常不是由類中內置的DateTime提供的翻譯工具。
Laravel的方法是在需要「解釋」模型數據的任何地方將庫存入控制器。 https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/
相關問題
- 1. 映射字符串到整數
- 2. 將數據映射到字符串
- 3. 將函數映射到字符串
- 4. 宏映射整數字符串令牌
- 5. 將整數(id)映射到文本字符串?
- 6. 將字符串集合映射到整數的pythonic方法
- 7. 將鍵值映射到整數和字符串的值
- 8. 將整數映射到給定字符串空間中的字符串
- 9. 將ObjectId字段映射到字符串
- 10. 將Mongodb ObjectId自動映射到字符串和從字符串映射
- 11. 將JavaScript映射到字符串
- 12. 將字符串映射到Dapper的GUID
- 13. 將字符串映射爲整數的數組 - Java
- 14. 將字符串映射到一組字符串的Python字典?
- 15. 將值映射到整數
- 16. java將映射位映射到字符串
- 17. 將整數轉換爲字符串中的字符串,對象哈希映射
- 18. 將數字映射到字符
- 19. C映射字符串到函數
- 20. 將字符串映射爲Python中的整數
- 21. 將特定字符串映射爲常量整數?
- 22. 休眠如何將字符串字段映射到數字列
- 23. 將字符串映射到維護字典順序的數字
- 24. 映射字符串
- 25. JSON.parse映射想要的字符串得到整數
- 26. 將Ruby映射到Ruby類的JSON - 不能將字符串轉換爲整數
- 27. 將串口數據映射爲整數
- 28. Laravel 5:whereRaw逃到字符串整數
- 29. 將離散數字映射到字符串
- 30. 將字符串列表映射到浮動數字 - Python
+1也取決於你經常需要這個屬性的方式。如果您有100個控制器,並且只使用一次,則使用存儲庫方法,反之亦然。 – ajameswolf
@jszobody這種方法如何提供多語言支持? – Mehrdad
@Mehrdad我有很多方法可以考慮這樣做,但我的直覺就是不去處理模型中的那個部分。讓模型以默認語言返回一個日期字符串(假設英語在這裏),然後在顯示視圖時使用Laravel的本地化功能翻譯日期字符串。無論如何,這是我的第一個想法。 – jszobody