【问题标题】:How to merge two post in one on Laravel5?如何在 Laravel5 上将两个帖子合二为一?
【发布时间】:2016-08-30 05:40:30
【问题描述】:

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

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

日期值类似于“2016-08-30”, timestamp_hi 值类似于“12:45”。

我希望合并那里的值并将数据库记录设置为“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')。为什么?

附言

模型改变了这一点。我之前没有设置受保护的 $dates 和 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');
    }
}

【问题讨论】:

    标签: php laravel-5.2 postgresql-9.5


    【解决方案1】:

    查看您的错误消息。

    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-&gt;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
    

    上面的第二个错误告诉你你有一个额外的日期被传递,注意2016-08-30的重复,我相信根据指定的日期格式传递正确的值不会产生你的错误重新面对。

    【讨论】:

    • 感谢回复。我发现 $request -> date 的值不正确。该值类似于“2016-08-30 00:00:00”。我正在调整并解决这个问题..
    • 欢迎来到 SO @qwe001,很高兴它有帮助,如果它解决了您的问题,请将其标记为已回答 :)
    • 还没有解决这个问题,呵呵 8
    • 我编辑我的问题检查。我更改删除日期 00:00:00 字符串的模型。我认为日期值来自“2016-08-30”,timestamp_hi 值来自“12:45”。头版显示如此。但我有同样的..数据丢失发生。不应该使用日期吗?使用 2 时间戳会让这一切变得简单吗?
    • 最后我决定把4个表格分开。日期、小时、分钟和秒。只需像 $test -> ts = $request -> date 一样合并它。 ' ' 。 $test -> 时间戳_h 。 ':' 。 $request -> 时间戳_i 。 ':' 。 $request -> 时间戳_s;我知道这是临时解决方案。但是我没有足够的时间去考虑它。暂时就这些了,谢谢你两次回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2021-12-13
    • 2014-08-17
    • 2018-04-03
    • 1970-01-01
    相关资源
    最近更新 更多