Saya mencoba membuat hubungan antara 2 tabel money_trade
dan money_trade_deposits
. Skema saya di tabel money_trade_deposits
adalah:
Schema::create('money_trade_deposits', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('mt_dep_number');
$table->unsignedBigInteger('money_trades_id');
$table->integer('amount');
$table->string('payment_method');
$table->foreign('money_trades_id')->references('id')->on('money_trades')->onDelete('cascade');
$table->timestamps();
});
MoneyTradeDepositController.php
public function store(Request $request)
{
$request->validate([
'amount' => ['required', 'string', 'max:255'],
'payment_method' => ['required', 'string', 'max:255'],
]);
$moneyTradeDeposit = new MoneyTradeDeposit();
$moneyTradeDeposit->mt_dep_number = uniqid('MTDepNumber-');
$moneyTradeDeposit->amount = $request->input('amount');
$moneyTradeDeposit->payment_method = $request->input('payment_method');
$moneyTradeDeposit->money_trades_id = MoneyTrade::get('id');
$moneyTradeDeposit->save();
return redirect()->route('mt.deposit')->withMessage('Added a New Deposit');
}
Model MoneyTradeDeposit.php saya punya
protected $table = 'money_trade_deposits';
public function moneytrade()
{
return $this->belongsTo(MoneyTrade::class);
}
Tampilan blade saya memiliki modal yang menyediakan input amount
dan payment_method
. Sekarang saya mencoba untuk mendapatkan id
dari tabel money_trade
saya dan memasukkannya ke tabel money_trade_deposits
saya sebagai money_trades_id
. Namun saya mendapatkan kesalahan ini. Ketika saya membuang $request saya bisa mendapatkan nilainya tetapi ketika saya membuang $moneyTradeDeposit, saya mendapatkan kesalahan lengkap ini:
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '[]' for column `fssdb`.`money_trade_deposits`.`money_trades_id` at row 1 (SQL: insert into `money_trade_deposits` (`mt_dep_number`, `amount`, `payment_method`, `money_trades_id`, `updated_at`, `created_at`) values (MTDepNumber-5f9f198f6c2b3, 1000, MoneyTrade, [], 2020-11-01 20:24:47, 2020-11-01 20:24:47))
Ketika saya dd($request)
saya mengerti
Ketika saya melakukan dd($moneyTradeDeposit);
saya mengerti
MoneyTradeController.php
saya untuk referensi memiliki metode store
yaitu
public function store(Request $request)
{
$request->validate([
'bank' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255'],
'mt_first_name' => ['required', 'string', 'max:255'],
'mt_last_name' => ['required', 'string', 'max:255'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'mt_account' => ['required', 'string', 'max:255'],
'mt_deposit' => ['required', 'string', 'max:255'],
'mt_leverage' => ['required', 'string', 'max:255'],
]);
$moneyTrade = new MoneyTrade();
$moneyTrade->mt_number = uniqid('MTNumber-');
$moneyTrade->bank = $request->input('bank');
$moneyTrade->email = $request->input('email');
$moneyTrade->mt_first_name = $request->input('mt_first_name');
$moneyTrade->mt_last_name = $request->input('mt_last_name');
$moneyTrade->password = $request->input('password');
$moneyTrade->mt_account = $request->input('mt_account');
$moneyTrade->mt_deposit = $request->input('mt_deposit');
$moneyTrade->mt_leverage = $request->input('mt_leverage');
$moneyTrade->user_id = auth()->id();
$moneyTrade->save();
return redirect()->route('home')->withMessage('MoneyTrade Account Created');
}
Dan seorang model MoneyTrade.php
class MoneyTrade extends Model
{
// protected $guarded = [];
public function user()
{
return $this->belongsTo(User::class);
}
}
Dan money_trades
skema tabel
Schema::create('money_trades', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('mt_number');
$table->unsignedBigInteger('user_id');
$table->string('bank');
$table->string('email');
$table->string('mt_first_name');
$table->string('mt_last_name');
$table->string('password');
$table->string('mt_account');
$table->string('mt_deposit');
$table->string('mt_leverage');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
Sepertinya money_trades_id
masalahnya.
Adakah yang bisa membantu saya? Terima kasih banyak.
MoneyTrade::get('id')
, dapatkah Anda memposting kode itu di sini. Atau buang hasilnya. - person gmfm   schedule 01.11.2020SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '[{"id":1}]' for column
fssdb.
money_trade_deposits.
money_trades_id` di baris 1 (SQL: masukkan ke dalam nilaimoney_trade_deposits
(mt_dep_number
,amount
,payment_method
,money_trades_id
,updated_at
,created_at
) (MTDepNumber-5f9f1f83d1a02, 1000, Perdagangan Uang, [{ id:1}], 01-11-2020 20:50:11, 01-11-2020 20:50:11))` - person Jemy   schedule 01.11.2020MoneyTrade::get('id')
tampaknya mengembalikan objek array dengan propertiid
, mungkin mewakili semua barismoney_trade
di DB. Saya rasa ini bukan fungsi yang Anda cari di sini. - person gmfm   schedule 01.11.2020id
khusus dari tabelmoney_trades
? - person Jemy   schedule 01.11.2020money_trade
mana yang harus dikaitkan dengan barismoney_trade_deposits
yang mana? Apakah ini dibuat dalam permintaan yang sama? - person gmfm   schedule 02.11.2020id
dari tabelmoney_trades
untuk dimasukkan ke tabelmoney_trade_deposits
saya sebagaimoney_trades_id
. Saya tidak yakin bagaimana melakukan ini karena saya tidak tahu cara merevisi kodeMoneyTrade::get('id')
. Saya mencoba menggunakanMoneyTrade::find('id')
tetapi ini tidak berhasil karena akan memberikan nilai nol. - person Jemy   schedule 02.11.2020MoneyTrade
? - person gmfm   schedule 02.11.2020MoneyTrade
. Saya sudah mencoba cara lain tetapi saya tidak tahu bagaimana cara memperbaikinya. Terima kasih banyak - person Jemy   schedule 02.11.2020money_trade
baru dengan$moneyTrade->save()
, Anda dapat memanggil$moneyTrade->id
untuk mendapatkan id barismoney_trade
yang baru ditambahkan, ini adalah id yang direferensikan olehmoney_trade_deposits.money_trades_id
. - person gmfm   schedule 02.11.2020$moneyTradeDeposit->money_trades_id = MoneyTrade::get('id');
berikan nilai integer dan coba periksa, berhasil atau tidak - person sta   schedule 02.11.2020Schema
saya memiliki$table->unsignedBigInteger('money_trade_id');
dan saya masih mendapatkan kesalahan yang sama SQLSTATE[22007]: Format waktu tanggal tidak valid: 1366 Nilai bilangan bulat salah: '[{id:1}]' untuk kolom fssdb.money_trade_deposits.money_trades_id` di baris 1 (SQL: masukkan ke dalam nilai money_trade_deposits (mt_dep_number, amount, payment_method, money_trades_id, update_at, create_at) (MTDepNumber-5f9f1f83d1a02, 1000, MoneyTrade, [{id:1}], 01-11-2020 20:50:11, 01-11-2020 20:50:11))` - person Jemy   schedule 03.11.2020$moneyTradeDeposit->money_trades_id
hanya menerima nilai integer, seperti$moneyTradeDeposit->money_trades_id = 1;
- person sta   schedule 03.11.2020