Laravel 将整数映射到字符串
Laravel mapping integer to String
我实现了一个名为 schedules
的 table,它有一个名为 day
的字段。
day 是 tinyInteger
数据类型,表示星期六或星期三等星期几。
关于获取查询并呈现给视图,我如何将 tinyInt
转换为代表性的 String
?
我还担心 MVC 体系结构表示一天的字符串与视图相关而不是模型本身,所以您对创建助手 class 并将整数转换为字符串有何看法?
我会在访问器中完成:
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
获取字符串。
我建议查看此库:
https://packagist.org/packages/nesbot/carbon
它通过 composer 获得了超过 700 万次安装。
基本上,它将为您提供大量翻译实用程序,这些实用程序通常是 class 中内置的 DateTime 所不提供的。
Laravel 方法是在需要 "interpret" 模型数据的任何地方将存储库注入控制器。
https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/
我实现了一个名为 schedules
的 table,它有一个名为 day
的字段。
day 是 tinyInteger
数据类型,表示星期六或星期三等星期几。
关于获取查询并呈现给视图,我如何将 tinyInt
转换为代表性的 String
?
我还担心 MVC 体系结构表示一天的字符串与视图相关而不是模型本身,所以您对创建助手 class 并将整数转换为字符串有何看法?
我会在访问器中完成:
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
获取字符串。
我建议查看此库: https://packagist.org/packages/nesbot/carbon 它通过 composer 获得了超过 700 万次安装。
基本上,它将为您提供大量翻译实用程序,这些实用程序通常是 class 中内置的 DateTime 所不提供的。
Laravel 方法是在需要 "interpret" 模型数据的任何地方将存储库注入控制器。 https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/