Первичный ключ Laravel не допускает нулевое значение - PullRequest
0 голосов
/ 01 января 2019

Я использую laravel + Nova, подключаясь к существующей базе данных существующего программного обеспечения. Первичный ключ - это не «ID» по умолчанию, поэтому на «модели» я изменил его следующим образом:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class products extends Model
{
    //
    protected $table = 't_items';
    protected $primaryKey = 'item_num';

    public $timestamps = false;

}

============================================================= При изменении и обновлении базы данных (с помощью nova) ошибки нет, однако при использовании сохранения (для новой или существующей строки) возникает ошибка:

SQLSTATE[42000]:[Microsoft][ODBC Driver 13 forSQL Server][SQL Server] Error converting data type nvarchar to numeric 9SQL select top 1 * drom [t_items][item_num] = null

"item_num" is defined as:
numeric
primary key
Allo nulls = false
Identity = false
Identity seed = 0
Identity increment = 0
Length = 9
Numeric precision = 10
Numeric scale = 0

Что я должен добавить. Я думаю, что laravel soed не определяет идентификатор при сохранении, а сервер нуждается в этом

1 Ответ

0 голосов
/ 01 января 2019

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

...