如何在Laravel5上合并两个帖子?

时间:2016-08-30 05:40:30

标签: php laravel-5.2 postgresql-9.5

我想像这样发布合并的日期和时间戳('H:i')。

private function update($test, $request)
{
    $test -> merge_date = $request -> date . " " . $request -> timestamp_hi;
    $test->save();
}

日期值来自'2016-08-30', timestamp_hi值就像'12:45'。

我希望合并那里的值并设置DB记录,如'2016-08-30 12:45:00'。

但这给我带来了错误。

InvalidArgumentException in Carbon.php line 425:
Unexpected data found.
Data missing

at Carbon::createFromFormat('Y-m-d H:i:s', '12:45:00') in Model.php line 2969

如果我将timestamp_hi值设置为'2016-08-30 12:45:00',Carbon create就是这样。

InvalidArgumentException in Carbon.php line 425:
The separation symbol could not be found
Unexpected data found.
Trailing data

at Carbon::createFromFormat('Y-m-d H:i:s', '2016-08-30 2016-08-30 12:45:00') in Model.php line 2969

似乎我可以合并2个帖子但不能合作时间戳('H:i')。为什么呢?

P.S。

模特改变了这一点。我之前没有设置受保护的$ date和Attribute。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
    protected $fillable = ['date', 'timestamp_hi'];
    protected $dates = ['date', 'timestamp_hi'];

    public function getDateAttribute($date)
    {
        return $this->attributes['date'] = \Carbon\Carbon::createFromFormat('Y-m-d', $date) -> toDateString();
    }
    public function getTimestampHiAttribute($timestamp_hi)
    {
        return $this->attributes['timestamp_hi'] = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestamp_hi) -> format('H:i');
    }
}

1 个答案:

答案 0 :(得分:0)

查看您的错误消息。

Data missing

at Carbon::createFromFormat('Y-m-d H:i:s', '12:45:00') in Model.php line 2969

以上说明您尝试将12:45:00解析为Y-m-d H:i:s格式,但您错过了此日期。它应为Y-m-d H:i:s, 2016-08-30 12:45:00,请用dd()检查$request->date。真的有价值吗?

Trailing data

at Carbon::createFromFormat('Y-m-d H:i:s', '2016-08-30 2016-08-30 12:45:00') in Model.php line 2969

上面的第2个错误告诉您,您已经传入了额外的日期,请注意2016-08-30的重复,我相信相应的日期格式会传递正确的值而不会让你知道你面临的错误。