Октябрь cms, не могу сохранить модель с пустыми значениями - PullRequest
0 голосов
/ 23 мая 2018

Я построил модель со столбцами:

like4u_id, vtope_id, panel_id

Я установил параметр этих столбцов - Nullable, но если я сохранил модель, я получил ошибку:

SQLSTATE [HY000]: общая ошибка: 1366 Неверное целочисленное значение: '' для столбца 'like4u_id' в строке 1 (SQL: обновление master_vars установлено updated_at = 2018-05-2316:03:14, like4u_id =, vtope_id = где id = 328)

В чем проблема?Это поле не является обязательным и столбец может быть обнуляемым.

Ответы [ 2 ]

0 голосов
/ 14 августа 2018

Когда поле формы пустое, но должно содержать «целочисленное» значение в базе данных, некоторые движки попытаются вставить пустую строку в целочисленное поле.
Это то, что вызывает сообщение об ошибке, в основном пытается поместитьчерез круглое отверстие.

Если вы реализуете Nullable trait , вы можете убедиться, что эти поля, если они оставлены пустыми, вставлены как истинные NULL вместостроки

Я предпочитаю иметь trait в качестве оператора использования над классом, а затем краткое использование внутри самого класса.
Вы также можете поместить его непосредственно в классна use \October\Rain\Database\Traits\Nullable; вместо use Nullable;, если вы не хотите, чтобы он появлялся в двух местах.Это зависит от ваших предпочтений.

use Model;
use October\Rain\Database\Traits\Nullable; 
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/**
 * Page Model
 */
class ModuleLink extends Model
{
    public $table = 'your_table_name_here';

    use Nullable; // This sets the trait to be used in this Model.
  //^^^^^^^^^^^^^
    public $nullable = [
        'module_id',    // Define which fields should be inserted as NULL when empty
        'sort_order',
    ];
0 голосов
/ 28 июня 2018

Это может случиться с базами данных MySQL.Вам нужно использовать черту Nullable в вашей модели, чтобы установить в NULL атрибуты, когда они оставлены пустыми.

Вот документы черты Nullable

...