Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте,
Прохожу обучающий курс по Laravel и застрял на переименовывании столбцов таблицы.
При выполнении миграции:
php artisan migrate --path=database/migrations/messages
Выдает:
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
Прочитал, что требуется doctrine/dbal
Я зашел в файл composer.json и дописал в нем строку
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.4.*",
"laravel/tinker": "~1.0",
"doctrine/dbal": "^3.0"
},
Далее запустил в терминале команду composer update
Но данные манипуляции все равно не устранили ошибку.
Подскажите, где я что упускаю?
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
у вас чушь какая-то в composer.json
он должен быть примерно такой
https://github.com/laravel/laravel/blob … poser.json
Изменено vladislavTkachenko (05.08.2021 08:56:09)
Не в сети
Я устанавливал Laravel через Composer.
Вот полностью мой файл с одной добавленной строчкой:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.4.*",
"laravel/tinker": "~1.0",
"doctrine/dbal": "^3.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.7"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
}
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
удалите свою строку с версией 3.0 и выполните composer require doctrine/dbal
Не в сети
Удалил свою строку.
После выполнения
composer require doctrine/dbal
в файле composer.json добавилась строка
"doctrine/dbal": "^3.1",
Пытаюсь сделать миграцию и опять та же ошибка
In MySqlConnection.php line 65:
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
Вот содержания файла миграции:
<?php
class ChangeFieldMessagesTables extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('messages', function (Blueprint $table) {
$table->renameColumn('username', 'name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('messages', function (Blueprint $table) {
//$table->renameColumn('name', 'login');
});
}
}
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
Ну не должно быть ошибки при соединении с БД. проект вообще работает с базой кроме этой миграции?
Попробуй установить все компоненты заново: удали папку vendors и файл composer.lock, затем сделай composer install. Должно пройти без ошибок.
Изменено artoodetoo (05.08.2021 15:45:16)
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Да конечно проект работает. Другие миграции по добавлению полей работают без проблем.
А миграция с переименовыванием полей в таблице выдает ошибку.
Причем в интернете такая ошибка при переименовывании много у кого возникает, но я не смог ее победить с помощью гугла.
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
а use прописаны ?
Не в сети
Я к сожалению не знаю, что это и где прописывать
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ChangeFieldMessagesTables extends Migration { ... }
Не в сети
Да вот три штуки сверху
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
похоже что у вас какая-то дичь просто) разверните с нуля проект.
Не в сети
Всегда есть объяснение ошибке. Надо разобраться.
Мб я предоставил мало информации?
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
Подсказали решение на другом сайте:
your problem because your doctirne/dbal: v3 , try to downgrade to v2 , like this :- doctrine/dbal": "^2.12" this issue related with your problem :- https://github.com/doctrine/dbal/issues/4439
ошибка исчезла. все работает теперь.
Открываю для себя Laravel. Как бы не закрыть.
Не в сети
Страницы 1