Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Пытаюсь изменить значения в таблице через консоль. Выпадает ошибка
Error
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
at C:\progi\OpenServer\domains\laravel.loc\vendor\laravel\framework\src\Illuminate\Database\MySqlConnection.php:64
60| * @return \Doctrine\DBAL\Driver\PDOMySql\Driver
61| */
62| protected function getDoctrineDriver()
63| {
> 64| return new DoctrineDriver;
65| }
66| }
67|
1 C:\progi\OpenServer\domains\laravel.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:894
Illuminate\Database\MySqlConnection::getDoctrineDriver()
2 C:\progi\OpenServer\domains\laravel.loc\vendor\laravel\framework\src\Illuminate\Database\Schema\Grammars\ChangeColumn.php:36
Illuminate\Database\Connection::getDoctrineSchemaManager()
Выполняю команду composer require doctrine/dbal
В консоле появляется сообщение, что обновлять нечего. Типа все есть. Но изменения в таблицу все равно внести не могу. После команды php artisan migrate снова консоль пишет
Error
Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
подскажите пожалуйста в чем дело?
Не в сети
https://laravel.com/docs/8.x/migrations … ng-columns
Что именно ты изменяешь в таблице через консоль?
Не в сети
public function up()
{
Schema::table('posts', function (Blueprint $table) {
$table->string('title', 100)->change(); // вместо 250 знаков, хочу поставить 100
$table->text('content')->nullable()->change(); // а здесь на null поменять
});
}
Не в сети
Какая версия доктрины используется? Версия Laravel 8.х?
Не в сети
Laravel Framework 7.30.1
Не в сети
А версия доктрины в composer.json ?
Не в сети
"doctrine/dbal": "^3.0",
Не в сети
Необходимо убедиться, что PDO MySQL драйвер установлен.
Не в сети
а как это сделать?
Не в сети
попробуй ввести в командной строке
php -i | grep "PDO drivers"
Не в сети
пишет вот что: "grep" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Не в сети
Посмотри, раскомментирован ли pdo_mysql в php.ini
Не в сети
в файле папки php 7.4 (которую использую на openservere) в файле php.ini есть вот такая запись
extension = pdo_mysql
в более ранних версиях PHP эта запись с .dll идет
Изменено Ruslan999 (11.01.2021 19:36:47)
Не в сети
Нужно убедиться, что эта запись раскомментирована.
Не в сети
точки запятой нет перед ней
Не в сети
да.
Не в сети
Да, ее нет. вот так выглядит запись
extension = pdo_mysql
Не в сети
Как она должна правильно выглядеть?
Не в сети
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Сам долго мучался, но для Laravel 7 и моей версии Open Servera проблема решилась благодаря downgrade "doctrine/dbal" до 2 версии. Для этого нужно в консоли Open Servera для интересующего проекта выполнить команду composer require doctrine/dbal:2.*
Изменено Artem_Glushchenko (07.09.2021 22:04:01)
Не в сети
Страницы 1