SQLSTATE[22007]: неверный формат datetime: 1366 неверное целочисленное значение Laravel 7


SQLSTATE[22007]: неверный формат datetime: 1366 неверное целочисленное значение Laravel 7

01.11.2020 11:24:19 Просмотров 22 Источник

Я пытаюсь установить связь между 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_deposits1. Однако я получаю эту ошибку. Когда я сбрасываю $request, я могу получить значения, но когда я сбрасываю $moneyTradeDeposit, я получаю эту полную ошибку:

money_trade_deposits2

Когда я money_trade_deposits3 я вам

enter image description here

Когда я делаю money_trade_deposits4, я получаю

enter image description here

Мой money_trade_deposits5 для справки имеет метод money_trade_deposits6, который является

money_trade_deposits7

И модель money_trade_deposits8

money_trade_deposits9

И схема таблицы money_trade_deposits0

money_trade_deposits1

Похоже, что проблема заключается в money_trade_deposits1.

Кто-нибудь может мне помочь, пожалуйста? Большое спасибо.

У вопроса есть решение - Посмотреть?

Ответы - SQLSTATE[22007]: неверный формат datetime: 1366 неверное целочисленное значение Laravel 7 / SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value Laravel 7

Hernán Martinez Reumann

02.11.2020 12:12:31

Можете ли вы попробовать с

MoneyTrade::get()->id;

Чтобы увидеть, возвращает ли он "значение" (в данном случае: 1)?

Эрнан.

PD: я вижу, что в схеме сумма-это "целое число", а в методе store вы проверяете "строку".

Помочь в развитии проекта:
Закрыть X