Eraquent Laravel: обойти ограничение VARCHAR из 191 символов - PullRequest
0 голосов
/ 04 мая 2018

Как указано этот человек , этот человек и этот человек , чтобы избежать

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1071 Указанный ключ слишком длинный; максимальная длина ключа 767 байт

Вы должны изменить AppServiceProvider.php вашего проекта Laravel следующим образом:

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;              //add this

class AppServiceProvider extends ServiceProvider {
    public function boot() {
        Schema::defaultStringLength(191);           //and this
    }

    public function register() { }
}

Но недостатком этого метода является то, что используемые мной VARCHAR ограничены 191 символом, и я хочу, чтобы поле было длиннее этого. Как мне быть?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

На самом деле в вашем файле миграции вы можете определить размер. Пример

$table->string('field_name', 200);
0 голосов
/ 04 мая 2018
...