SQLSTATE[22007]: неверный формат datetime: 1366 неверное целочисленное значение Laravel 7
Я пытаюсь установить связь между 2 таблицами money_trade
и money_trade_deposits
. Моя схема в таблице money_trade_deposits
такова:
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');
}
Мой MoneyTradeDeposit.php модель имеет
protected $table = 'money_trade_deposits';
public function moneytrade()
{
return $this->belongsTo(MoneyTrade::class);
}
Мой вид лезвия имеет модальный режим, который обеспечивает входы amount
и payment_method
. Теперь я пытаюсь получить id
из моей таблицы money_trade
и вставить его в мою таблицу money_trade_deposits
как money_trade_deposits
1. Однако я получаю эту ошибку. Когда я сбрасываю $request, я могу получить значения, но когда я сбрасываю $moneyTradeDeposit, я получаю эту полную ошибку:
money_trade_deposits
2
Когда я money_trade_deposits
3 я вам
Когда я делаю money_trade_deposits
4, я получаю
Мой money_trade_deposits
5 для справки имеет метод money_trade_deposits
6, который является
money_trade_deposits
7
И модель money_trade_deposits
8
money_trade_deposits
9
И схема таблицы money_trade_deposits
0
money_trade_deposits
1
Похоже, что проблема заключается в money_trade_deposits
1.
Кто-нибудь может мне помочь, пожалуйста? Большое спасибо.
Ответы - SQLSTATE[22007]: неверный формат datetime: 1366 неверное целочисленное значение Laravel 7 / SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value Laravel 7

02.11.2020 12:12:31
Можете ли вы попробовать с
MoneyTrade::get()->id;
Чтобы увидеть, возвращает ли он "значение" (в данном случае: 1)?
Эрнан.
PD: я вижу, что в схеме сумма-это "целое число", а в методе store вы проверяете "строку".