Laravel jordanmiguel/laravel-流行错误[重复]
Posted
技术标签:
【中文标题】Laravel jordanmiguel/laravel-流行错误[重复]【英文标题】:Laravel jordanmiguel/laravel-popular error [duplicate] 【发布时间】:2018-07-09 02:31:04 【问题描述】:我正在使用 Laravel/popular,当我添加 3 个类并进行迁移时,它给了我错误。这里列出了 3 个类:
JordanMiguel\LaravelPopular\LaravelPopularServiceProvider::class,
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Auth\AuthServiceProvider:class,
Laravel popular
在 Connection.php 第 664 行:
SQLSTATE[42000]:语法错误或访问冲突:1071 指定键 太长了;最大密钥长度为 1000 字节(SQL:alter table
visits
添加唯一的visits_ip_visitable_id_visitable_type_date_unique
(ip
,visitable_id
,visitable_type
,date
))
在 Connection.php 第 458 行:
SQLSTATE[42000]:语法错误或访问冲突:1071 指定键 太长了;最大密钥长度为 1000 字节
【问题讨论】:
【参考方案1】:在你的 app\Providers\AppSErviceProvider.php 文件中添加这两行:
在顶部:
use Illuminate\Support\Facades\Schema
;
开机函数内部:
Schema::defaultStringLength(191);
更新: 看到你的 cmets 不工作后,你可能需要在你的 phpmyadmin 中运行下面的 mysql 查询(如果你有访问权限)。
CREATE TABLE `visits` (
`id` int(10) UNSIGNED NOT NULL,
`ip` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`visitable_id` int(11) NOT NULL,
`visitable_type` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`date` date NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `visits`
--
ALTER TABLE `visits`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `visits_ip_visitable_id_visitable_type_date_unique` (`ip`,`visitable_id`,`visitable_type`,`date`),
ADD KEY `visits_ip_index` (`ip`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `visits`
--
ALTER TABLE `visits`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;COMMIT;
这将为您创建表,无需运行php artisan migrate
它不是完美的答案,但它可以暂时解决您的问题。
【讨论】:
我已经添加了 @arun kumar 先生 关闭您的终端或腻子,然后再次打开。如果没有帮助,请运行“composer dump-autoload” 还是一样 :( 。我试过 cache:clear , dump-autoload 。还是一样的错误SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table
visits` 添加唯一的visits_ip_visitable_id_visitable_type_d ate_unique
(ip
, visitable_id
, visitable_type
, date
))`
@М.Билгүүн,看看更新的答案【参考方案2】:
在您的AppServiceProvider
中,将此行添加到启动方法-
public function boot()
Schema::defaultStringLength(191);
【讨论】:
我已经添加了,先生 请在您遇到错误的地方添加您的迁移文件,您的 laravel 版本是什么?? github.com/jordanmiguel/laravel-popular 请检查一下先生。我加了 3 节课。并尝试运行迁移,它给了我错误我没有任何迁移文件 您没有更改此文件的任何内容,对吧??以上是关于Laravel jordanmiguel/laravel-流行错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章