Laravel

[Laravel8]Bladeのフォーム(Form)で日時を扱う

Larvelでは日時をBladeで扱うには少しコツがいります。

Xこれで動きません

<input class="form-control digits" name="limit_time" type="datetime-local" value="{{ $user->limit_time}}">

 

Valueがフォーマットされていないので、フォームには表示されません!

Larvelでは標準で搭載されているCarbonを使う必要があります。

フォーマットも基本コントローラー上でやるほうがやりやすいです。

O これで動きます。

1,定義して

use Carbon\Carbon;

2,このような関数を作って(色々なところで使うので)フォーマットします。

public function chgAttribute($value)
{
     return Carbon::parse($value)->format('Y-m-d\TH:i');
}

3,コントローラーでこのようにして出す

//使い方
$limit_time = $this->chgAttribute($min->limit_time);


return view('/edit', compact('limit_time'));

4,Bladeではこのようにする

<input class="form-control digits" name="limit_time" type="datetime-local" value="{{ $limit_time}}">

Xこれはダメ!

{{ Form::date('limit_time', $limit_time, ['class'=>'form-control digits']) }}

 

-Laravel

© 2022 青い空とコーヒーと