Issue
I have gotten an error.
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '28-01-2022 12:00' for column fotostudio
.transaction_details
.datetime
at row 1 (SQL: insert into transaction_details
(username
, phone
, datetime
, transactions_id
, updated_at
, created_at
) values (Candradimuka Production, 085328663110, 28-01-2022 12:00, 11, 2022-01-09 08:13:14, 2022-01-09 08:13:14))
Here's my Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Transaction extends Model
{
use SoftDeletes;
protected $fillable = [
'reservations_id', 'reservations_title', 'users_id',
'transaction_total', 'transaction_status'
];
protected $hidden = [
];
//relasi ke galery dan reservasi
public function details() {
return $this->hasMany(
TransactionDetail::class, 'transactions_id', 'id');
}
public function reservation() {
return $this->belongsTo(
Reservation::class, 'reservations_id', 'id');
}
public function user() {
return $this->belongsTo(User::class, 'users_id', 'id');
}
}```
And here's my Controller
<?php
namespace App\Http\Controllers;
use App\Models\Transaction;
use App\Models\TransactionDetail;
use App\Models\Reservation;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CheckoutController extends Controller
{
public function index(request $request, $id)
{
$item = Transaction::with(
['details', 'reservation', 'user'])->findOrFail($id);
return view('pages.checkout',
['item' => $item]);
}
public function process(request $request, $id)
{
$reservation = Reservation::findOrFail($id);
$transaction = Transaction::create([
'reservations_id' => $id,
'reservations_title' => $reservation->title,
'user_id' => Auth::user()->id,
'transaction_total' => $reservation->price,
'transaction_status' => 'IN_CART'
]);
return redirect()->route('checkout', $transaction->id);
}
public function remove(request $request, $detail_id)
{
$item = TransactionDetail::findOrFail($detail_id);
//dd($item);
$transaction = Transaction::with(['details', 'reservation'])
->findOrFail($item->transaction_id);
$item->delete();
return redirect()->route('checkout', $item->transaction_id);
}
public function create(request $request, $id)
{
$request->validate([
'username' => 'required|string|exists:users,username',
'phone' => 'required|string',
'datetime' => 'required|date'
]);
$data = $request->all();
$data['transactions_id'] = $id;
TransactionDetail::create($data);
$transaction = Transaction::with(['reservation'])->find($id);
return redirect()->route('checkout', $id);
}
public function success(request $request, $id)
{
$transaction = Transaction::findOrFail($id);
$transaction->transaction_status = 'PENDING';
$transaction->save();
return view('pages.success');
}
}
Solution
try this set format before insert data
$data = $request->all();
$data['transactions_id'] = $id;
$data['datetime'] = date('Y-m-d H:i:s', strtotime($data['datetime']));
TransactionDetail::create($data);
Answered By - Niraj Kavishka
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.