У меня проблема 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 ()
У вас есть идея, пожалуйста? Заранее благодарю вас за ответы.
Джигнеш Джойсар: даже проблема, я не понимаю, почему это не работает ???
какую версию laravel вы используете
@anais_stem прочитайте эту статью laravel-news.com/laravel-5-4-key-too-long-error
@ Шайлендра Гупта: у меня версия 5.3.8






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 ();});
Вы все еще получаете ошибку, если да, то скажите мне, какую ошибку вы получаете
@ Шайлендра Гупта: ох, это работает, извините !!!! Thaaaannnnkkkkk youuuuuu !!! Я стер Schema :: defaultStringLength (255); в файле AppServiceProvider.php
@ Шайлендра Гупта: Я тоже думаю обновить свою версию
да, вы можете в новых версиях laravel иметь новые функции, и не забудьте также проголосовать за
Schema::defaultStringLength(191);used @anais_stem