sam*_*toh 0 php laravel laravel-5.3
当我运行系统时,存在如下错误:
InvalidArgumentException in Carbon.php line 425: Data missing
in Carbon.php line 425
at Carbon::createFromFormat('Y-m-d H:i:s', '10-12-2016') in Model.php line 2990
at Model->asDateTime('10-12-2016') in Model.php line 2944
at Model->fromDateTime('10-12-2016') in Model.php line 2872
at Model->setAttribute('tglkop', '10-12-2016') in Model.php line 442
Run Code Online (Sandbox Code Playgroud)
我的模型是这样的:
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class P3 extends Model
{
use SoftDeletes;
public $table = 'p3_s';
protected $dateFormat = 'Y-m-d';
protected $dates = ['deleted_at', 'tglkop', 'tglp3'];
public $fillable = [
'id_pagu',
'id_p3',
'kdbulan',
'thang',
'nokop',
'tglkop',
'tglp3'
];
protected $casts = [
'id_pagu' => 'string',
'id_p3' => 'string',
'kdbulan' => 'string',
'thang' => 'string',
'nokop' => 'string'
];
public static $rules = [
'id_pagu' => 'required',
'id_p3' => 'required',
'kdbulan' => 'required',
'thang' => 'required',
'nokop' => 'required',
'tglkop' => 'required',
'tglp3' => 'required',
];
}
Run Code Online (Sandbox Code Playgroud)
我的桌子是这样的:
id, int(10)
id_pagu, varchar(18)
id_p3, varchar(18)
kdbulan, varchar(2)
thang, varchar(4)
nokop, varchar(10)
tglkop, date
tglp3, date
created_at, timestamp
updated_at, timestamp
deleted_at, timestamp
Run Code Online (Sandbox Code Playgroud)
我在stackoverflow和laravel docs中阅读了一些教程,但我仍然对实现它感到困惑
有什么解决方案可以解决我的问题吗?
只需'tglkop', 'tglp3'从您的$casts数组中删除,并将其添加到'$dates'数组中。这些属性将自动转换为Carbon实例
更新
我猜你的数据库列tglkop,并tglp3具有DATE类型,而不是DATETIME。
这个错误
Carbon::createFromFormat('Y-m-d H:i:s', '10-12-2016') in blah blah blah
Run Code Online (Sandbox Code Playgroud)
说Carbon需要带格式的日期,Y-m-d H:i:s但您以格式d-m-Y( 10-12-2016)给出日期
解决方案 1:将这些列的类型更改为DATETIME
解决方案 2:将其添加到您的模型中
protected $dateFormat = 'Y-m-d'; // this is expected format for `MySQL` `DATE` type field
Run Code Online (Sandbox Code Playgroud)
更新 2
我认为您尝试在数据库中创建行。你想传递什么数据?我想tglkop和tglp3你输入的字段有格式错误。
| 归档时间: |
|
| 查看次数: |
3484 次 |
| 最近记录: |