2016-08-30 9 views
0

このようにマージされた日付とタイムスタンプ( 'H:i')を投稿したいとします。Laravel5で2つの投稿をマージするにはどうすればよいですか?

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

日付値が '2016年8月30日' のような来て、 timestamp_hi値は'12のように来る:45' 。

値をマージし、 '2016-08-30 12:45:00'のようなDBレコードを設定したいと思います。

しかし、それは私にエラーをもたらす。

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.

モデルがこれを変更しました。私は保護された$日付と属性を前に設定しません。

<?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'); 
    } 
} 

答えて

0

エラーメッセージをご覧ください。

Data missing 

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

上記あなたはフォーマットY-m-d H:i:s12:45:00を解析しようとしていることを示しています、あなたは、このために日付を逃しています。 Y-m-d H:i:s, 2016-08-30 12:45:00である必要があります。$request->dateをdd()でチェックしてください。本当に価値が渡されていますか?

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の繰り返しに気づくことを示していますあなたは直面している。

+0

返信いただきありがとうございます。 $ request - > dateに間違った値が入っています。その値は '2016-08-30 00:00:00'のようになります。私は調整してこれを解決しています。 – qwe001

+0

SO @ qwe001ようこそ、それはあなたの問題を解決する場合、親切に答えとしてマークすることを喜んで:) – SteD

+0

私は日付値を調整するが、同じ問題が発生しました。日付とタイムスタンプを文字列にマージできませんか? – qwe001

関連する問題