我在表单中有几个字段,其中包含日期和时间('dd-mm-yyyy', 'hh:mm')
。
当我想保存表单时,我使用自己的函数将其转换为MySQL ('yyyy-mm-dd', 'H:i:s')
,通过date()将其添加到Laravel Model
类中的save()。
但是在哪里可以放置相同的函数来格式化输出(SELECT查询)?
Laravel中没有单一功能可用于数据输出。 find()
,findOrNew()
,findOrFail()
,... - 有不同的类,因此我无法使用单个位置添加格式化功能。
是否有适当的位置来放置格式化功能?
答案 0 :(得分:1)
您可以使用Laravel Date Mutator。只需将以下方法放入您的Eloquent模型中:
假设您的数据库中有一个使用expireDate列的表用户。然后在模型中定义此字段。
class User extends Eloquent {
protected $dates = ['expireDate'];
}
使用您的数据库列名替换FirstName。 然后你可以使用laravel Carbon类来格式化你的结果。
$user = User::find(1);
return $user->expireDate->format('d-m-Y');
如需更多参考,请阅读http://laravel.com/docs/4.2/eloquent#date-mutators
答案 1 :(得分:0)
只需将其添加到AppServiceProvider@register
:
Carbon::setToStringFormat('d/m/y');
现在你可以回复$model->created_at
并正确格式化所有内容。
答案 2 :(得分:0)
在App目录中,创建一个新目录。我们称之为“libraries
”,
然后创建一个php文件“CustomFunction.php”或者其他什么,这也必须是一个类,然后将你的函数放在这个类中。
所以你有
class CustomFunction{
static function dateFormat(){
}
}
App/libraries
/ 中的
Then in App/start/global.php
第14行的Iside类加载器,如下所示,添加新文件夹的路径:
ClassLoader::addDirectories(array(
app_path().'/libraries'
));
然后在您的composer.json文件中添加:
“app/libraries
”到“autoload
”数组。
然后在您的视图中,您可以轻松地执行此操作:
{{ CustomFunction::dateFormat() }}