У меня проблема с Laravel 6.0. Тот же исходный код работает нормально с Laravel 5.8. Ошибка выглядит следующим образом:
Подсветка \ База данных \ QueryException SQLSTATE [22018]: [Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Преобразование не удалось при преобразовании значения nvarchar 'XXXX' в тип данныхвнутр. (SQL: выберите * из [business_units] где [business_units]. [Code] в (0, 0, 0, 0))
Попытка создать проект laravel, используя 5.8 и 6.0, содержащие одинаковый исходный код, норезультат тот же, работает хорошо в 5,8, но не в 6,0. Возможно, что-то не так в Eloquent.
Вот миграция:
Schema::create('cost_centers', function (Blueprint $table) {
$table->string('code', 6)->primary();
$table->string('descr', 50);
$table->string('business_unit_code', 6)->index();
$table->foreign('business_unit_code')->references('code')->on('business_units');
$table->timestamps();
});
Сценарий моей модели:
class CostCenter extends Model
{
protected $primaryKey = 'code';
protected $fillable = ['code', 'descr', 'business_unit_code'];
public $incrementing = false;
public function businessUnit()
{
return $this->belongsTo(BusinessUnit::class);
}
}
Это после открытия формы сстолбец в таблице, ссылающийся на другой столбец, где первичным ключом является строка. Кто-нибудь сталкивался с этой проблемой, каково ваше решение?