MySqlBuilder :: defaultStringLength ()

У меня проблема defaultStringLength (), несмотря на несколько попыток. Объясняю вам свою процедуру.

В базе данных папок с файлами -> 2018_10_24_103651_create_devis_table.php у меня есть это:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateDevisTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('devis', function (Blueprint $table) {
            $table->increments('id');
            $table->string('firstname');
            $table->string('lastname');
            $table->string('email');
            $table->string('phone');
            $table->string('start_adress');
            $table->string('end_adress');
            $table->text('remarks');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('devis');
    }
}

Затем я должен изменить файл AppServiceProvider.php

Вот моя модификация

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Schema::defaultStringLength(255);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

После этого я запускаю команду next php artisan migrate и получаю сообщение об ошибке -> Вызов неопределенного метода Illuminate \ Database \ Schema \ MySqlBuilder :: defaultStringLength ()

У вас есть идея, пожалуйста? Заранее благодарю вас за ответы.

Schema::defaultStringLength(191); used @anais_stem
Jignesh Joisar 24.10.2018 12:57

Джигнеш Джойсар: даже проблема, я не понимаю, почему это не работает ???

anais_stem 24.10.2018 13:03

какую версию laravel вы используете

Shailendra Gupta 24.10.2018 13:08

@anais_stem прочитайте эту статью laravel-news.com/laravel-5-4-key-too-long-error

Jignesh Joisar 24.10.2018 13:10

@ Шайлендра Гупта: у меня версия 5.3.8

anais_stem 24.10.2018 13:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
429
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

defaultStringLength это введено в Laravel 5.4.

Вы можете обновить версию Laravel

или

Вы указываете длину как $table->string('coumname', 255);. Вы не можете указать больше, чем 255.

Я пробую ваше второе решение, но оно не работает: public function up () {Schema :: create ('biodatas', function (Blueprint $ table) {$ table-> increments ('id'); $ table-> строка ('тест'); $ table-> string ('coumname', 255); $ table-> timestamps ();});

anais_stem 24.10.2018 13:25

Вы все еще получаете ошибку, если да, то скажите мне, какую ошибку вы получаете

Shailendra Gupta 24.10.2018 13:26

@ Шайлендра Гупта: ох, это работает, извините !!!! Thaaaannnnkkkkk youuuuuu !!! Я стер Schema :: defaultStringLength (255); в файле AppServiceProvider.php

anais_stem 24.10.2018 13:33

@ Шайлендра Гупта: Я тоже думаю обновить свою версию

anais_stem 24.10.2018 13:34

да, вы можете в новых версиях laravel иметь новые функции, и не забудьте также проголосовать за

Shailendra Gupta 24.10.2018 13:35

Другие вопросы по теме