私はレコードを "削除"するためにLaravelソフト削除を使用しています。しかし、何か奇妙なことが起こっている場合、レコードをソフト削除するために使用されるdelete()
コマンドは、私が重要なものを見落としていない限り、テーブル内の他のタイムスタンプ行に明らかに影響します。他のタイムスタンプ列に影響するLaravel `delete()`
マイモデル(関連部分のみが名前空間がすべて適切に含まれている、含まれています):
use SoftDeletes;
protected $fillable = [ 'card_id', 'expiry_date' ]; // where expiry_date is the timestamp row being affected.
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
マイコントローラー:
public function destroy(IdCardFormRequest $request, $id)
{
$idCard = IdCard::find($id);
if(isset($idCard)){
$operationStatus = $idCard ->delete();
if($operationStatus) {
$request->session()->flash('status', 'success');
$request->session()->flash('message', 'Id card deleted successfully');
return redirect()->route('admin.id-card.index');
}
}
}
問題
私が開始適切なルートを使用した削除プロセスMySqlデータ行はソフト削除dが適切に設定されるが、他方のタイムスタンプベースの行、すなわちexpiry_date
が現在のタイムスタンプに更新される。私はLaravelのソフト削除に関連する文書全体を読んできましたが、他のタイムスタンプの列が影響を受けることは言及していません。
編集:
まあ、私はそれがdateTime()
代わりのtimestamp()
を使用して解決しました。これが適切な解決策であるとはまだ確信していません