#php #laravel #migration
#php #laravel #миграция
Вопрос:
Я получаю следующую ошибку при попытке создать миграции для моей установки laravel 4. Файл создается, но выдает следующую ошибку.
Created Migration: 2014_07_06_073213_create-users-table
Generating optimized class loader
Compiling common classes
{"error":
{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Class 'ClassPreloader\Command\PreCompileCommand' not found","file":"/home/name123/domain.com/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php","line":113}}[warehouse]
$ php artisan migrate:make create-users-table
Не похоже, что у других людей есть такая же проблема.
Также получаю эту ошибку при фиксации миграции
{"error":{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Call to a member function increments() on a non-object","file":"/home/dandel26/danieldelcore.com/laravel/app/database/migrations/2014_06_29_092641_create_users_table.php","line":15}}
Заранее спасибо.
Комментарии:
1. Иногда вы можете получать ошибки на основе автозагрузки из-за использования слишком старой версии composer (той, которая не поддерживает PSR-4, когда на нее полагается одна из ваших зависимостей). Попробуйте выполнить a
composer selfupdate
в терминале и посмотрите, помогает ли это исправить ошибкуmigrate:make
команды. В противном случае попробуйте полностью удалитьvendor
каталог и запуститьcomposer install
, чтобы получить новую установку всех зависимостей.2. Спасибо, приятель, похоже, это правильный путь
Ответ №1:
При миграции у вас есть функция up. В этой функции будет что-то вроде:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
});
Казалось бы, вы не определили обратный вызов с переменной $table . Пожалуйста, добавьте Blueprint $table
, и это должно сработать.
В этом случае не забудьте импортировать правильные пространства имен:
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;