安装了最新版本的laravel5.6,一个空的laravel,来学习Entrust。
github地址:entrust
安装什么按照安装教程的来就行了,只说遇到的问题。我使用的laravel5.6版本。
问题一:
看到图中红色框起来的错误。
[ReflectionException]
Method Zizaco\Entrust\MigrationCommand::handle() does not exist
解决方法:找到
vendor\zizaco\entrust\src\commands\MigrationCommand.php,里面有个fire方法,改成handle
就可以了。
此问题解决方法是在:URL评论里找到的。
问题二:
看到图中红色框起来的错误。
[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'Of\Your\User\Model\User' not found
在配置文件 config/auth.php 把 providers覆盖
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
'table' => 'users',
],
],
问题三:
如图中的错误,我就暂时采取了指定迁移文件的方式解决。步骤:
在
database/migrations/
目录下创建一个新的目录,比如single/
将你要 migrate 的那个文件移到上一步创建的
single/
目录命令行执行下面的命令:
php artisan migrate --path=/database/migrations/single
解决方法来源:
URL
问题四:
如图中的报错
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
解决方法:
1、升级mysql版本到5.5.3以上
2、手动配置迁移命令 migrate 生成的默认字符串长度,在 app\Providers\AppServiceProvider.php 中调用 Schema::defaultStringLength 方法来实现配置:
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
解决方法来源:
URL