php - 我可以在 Laravel5 上获取 pluck(lists) 的自定义日期格式吗?

标签 php postgresql laravel-5

我的数据库记录是这样的。

tests table
id date
1 2016-07-01
2 2016-07-31
3 2016-08-01
4 2016-08-15
5 2016-08-31
6 2016-09-01

我想按月选择记录。 现在我的代码是这样的。

Controller

$months = \App\Test::where('date', '<=', 'now()')
                          ->orderBy('date', 'desc')
                          ->pluck('date', 'date');

查看

{{ Form::select('month', $months, old('month'), ['id' => 'month']) }}

( that generate this. )

<select id="month" name="month">
    <option value="2016-07-01">2016-07-01</option>
    <option value="2016-07-31">2016-07-31</option>
    <option value="2016-08-01">2016-08-01</option>
    <option value="2016-08-15">2016-08-15</option>
</select>

但我想要这个。

$months = \App\Test::where('date', '<=', 'now()')
                          ->orderBy('date', 'desc')
                          // ->format('m').
                          ->pluck('date', 'date');

{{ Form::select('month', $months, old('month'), ['id' => 'month']) }}

( I wanna generate this )

<select id="month" name="month">
    <option value="7">7</option>
    <option value="8">8</option>
</select>

我想使用 pluck 的格式,但遗憾的是不能这样做 有解决办法吗?

最佳答案

您可以通过三种方式做到这一点。 所有这些解决方案都取决于 date 属性不是 Carbon 实例这一事实,这就是您的情况。

  1. 日期属性的访问器,用于返回您希望的格式:

在你的测试模型中

测试.php

public function getDateAttribute($value)
{
    return Carbon::createFromFormat('Y-m-d H', $value)->format('m');
}

但是这会影响所有地方的代码。

  1. 第二种方法是创建自定义属性。
public function getFormattedDateAttribute()
{
    return Carbon::createFromFormat('Y-m-d H', $this->date)->format('m');
}
  1. 第三种方法是编辑集合本身。
$months = \App\Test::where('date', '<=', 'now()')
                                      ->orderBy('date', 'desc')
                                      ->pluck('date');
       
$months->each(function($month){
            return Carbon::createFromFormat('Y-m-d H', $month)->format('m');
        });

关于php - 我可以在 Laravel5 上获取 pluck(lists) 的自定义日期格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095477/

相关文章:

php - Elastic Beanstalk 在启用 ZipArchive 的情况下编译 php

php - 为什么添加css代码后模态窗口会隐藏? ( Bootstrap )

json - 使用 django query set values() 索引到 JSONField

sql - 使用 SQL 将表 B 中的空值替换为表 A 中的值

database - 这个递归是如何 self 重复的?

laravel-5 - Laravel 5.4 中跨 View 共享

php - MySQL:将未加密的密码列转换为 MD5 哈希

php - 检查 WooCommerce 用户角色和支付网关,如果它们匹配 - 申请费用

php - 使用 PHP : 在我的网页上上传/显示视频

php - Laravel 选择具有唯一列的行