According to the official documentation, you can solve this quite easily.
Add following code to AppServiceProvider.php (/app/Providers/AppServiceProvider.php)
use Illuminate\Database\Schema\Builder; // Import Builder where defaultStringLength method is defined
function boot()
{
Builder::defaultStringLength(191); // Update defaultStringLength
}
MySQL reserves always the max amount for a UTF8 field which is 4 bytes so with 255 + 255 with your DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; you are over the 767 max key length limit. By @scaisedge
And Another Solution is –
in AppServiceProvider didn’t work for me. What worked for was editing the database.php file in config folder. Just edit
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
to
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
and it should work, although you will be unable to store extended multibyte characters like emoji.
I did it with Laravel 5.7. Hope it helps.










![Cannot read property ‘toLowerCase’ of undefined [ERROR] An error occurred while running subprocess cordova.](https://blog.rahulbhutani.com/wp-content/uploads/2020/12/ionic-enable-xcode-permissions-banner-218x150.png)






