Почему FuelPHP Orm Создает недопустимый запрос на обновление после обновления версии до 1.8 - PullRequest
0 голосов
/ 22 октября 2019

Я обновил свою версию fuelphp с 1.6 до 1.8. После этого я заметил некоторые ошибки запроса MSSQL.

Полученное сообщение об ошибке:

Fuel\Core\Database_Exception [ HY000 (156) ]:
SQLSTATE[HY000]: General error: 156 Incorrect syntax near the keyword 'WHERE'. [156] (severity 15) [UPDATE "invoice_payments" SET WHERE "id" = 91044] with query: "UPDATE "invoice_payments" SET WHERE "id" = 91044"

У меня есть модель счета. Iтолько что загрузил метод модели счета find в другую модель, называемую чеки. Я добавил этот код для загрузки наблюдателя для модели счета.

Загрузил модель счета в другую проверку модели с помощью следующих кодов.

//Force invoice reload and fire observers
   $invoice = \Model_Invoice::find($this->invoice->id, ['from_cache' => false]);

Таблица оплаты счетов-фактур имеет много связей с таблицей счетов-фактур.

    protected static $_has_many = array(
            'checks',        
            'invoice_payments' => [
                'cascade_save'   => true,
            ], 


    ); 
// observers in invoice model

protected static $_observers = array(
        "Observer_Invoice",
        "Observer_Fiscalyear",
        "Observer_Invoice_Totals",
        "Observer_Invoice_Displayid",
        "Observer_Invoice_Paragraphs",
        "Observer_Invoice_Token",
        "Observer_Invoice_Returnedtodepartment",
        'Orm\Observer_CreatedAt' => array(
            'mysql_timestamp' => true,
        ),
        'Orm\Observer_UpdatedAt' => array(
            'mysql_timestamp' => true,
        ),
        "Observer_Invoice_Capitalize",
    );

    public static function all_related()
    {
        return self::$_has_many;
    }

Я исправил это с помощью грязного исправления, проверив окончательный запрос в файле query.php вОсновная папка.

...