使用 laravel mysql 中的数据类型日期未更新

Datatype date is not updating in mysql using laravel

import_request_trackers table 中名为 'Shipment' 的列,其数据类型为 Date,最初默认值为 null。

$table->date('Shipment')->nullable();
$table->date('Arrival')->nullable();

但是当我尝试从另一个表单手动更新列时,它没有显示任何错误,但是数据库 table 没有被更新。

public function shipmentadd(Request $request, $id){
    $tracker = ImportRequestTracker::where('OrderNo', $id)->first();

   $inputs = [
      'Shipment' => $request->input('ShipmentDate')
    ];
          
    $tracker->update($inputs);
    return redirect()->route('developer.import.tracker');

}

1-先检查你的路线,请注意你的$id是正确通过的!

2-查资料,可以用"dd($id , $request->input('ShipmentDate'))查。

3- 请注意,您的 ShipmentDate 数据应具有特定结构,例如:2022-12-01 or 2022/12/01 (Y-m-d or Y/m/d) and etc. 作为“YYYY-MM-DD”或“YY-MM-DD”格式的字符串。允许使用“宽松”语法:任何标点符号都可以用作日期部分之间的分隔符。例如,'2012-12-31', '2012/12/31', '2012^12^31', and '2012@12@31' 是等价的。 作为 'YYYYMMDD' 或 'YYMMDD' 格式中没有分隔符的字符串,前提是该字符串作为日期有意义。例如,'20070523' 和 '070523' 被解释为 '2007-05-23',但是 '071332' 是非法的(它有无意义的月份和日期部分)并变为 '0000-00-00'。

作为 YYYYMMDDYYMMDD 格式的数字,前提是该数字作为日期有意义。例如,19830905830905 被解释为 '1983-09-05'

总而言之,查资料后你可以使用这个代码:

public function shipmentadd(Request $request, $id){
    $tracker = ImportRequestTracker::where('OrderNo', $id)->update([
      'Shipment' => $request->input('ShipmentDate'),
   ]);
       
    return redirect()->route('developer.import.tracker');

}