详细Laravel5.5执行表迁移命令出现表为空的解决方案

转载  更新时间:2018年07月06日 09:25:31   作者:Corwien   我要评论

这篇文章主要介绍了详细Laravel5.5执行表迁移命令出现表为空的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

今天在使用一个第三方包 laravel-admin 时,出现了这样的错误:SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '',折腾了好久,终于知道了解决方法,原来是配置文件的缓存没有清理。

一、问题

vagrant@homestead:~/Code/laravel-shop$ php artisan admin:install

错误提示:

In Connection.php line 664:

  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' (SQL: create table `` (`id` int uns
  igned not null auto_increment primary key, `username` varchar(190) not null, `password` varchar(60) not null, `name
  ` varchar(255) not null, `avatar` varchar(255) null, `remember_token` varchar(100) null, `created_at` timestamp nul
  l, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)


In Connection.php line 452:

  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name ''

二、解决方案

database/migrations/2016_01_04_173148_create_admin_table.php

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateAdminTable extends Migration
{
  /**
   * Run the migrations.
   *
   * @return void
   */
  public function up()
  {
    $connection = config('admin.database.connection') ?: config('database.default');

    // dd(app('config'));
    Schema::connection($connection)->create(config('admin.database.users_table'), function (Blueprint $table) {
      $table->increments('id');
      $table->string('username', 190)->unique();
      $table->string('password', 60);
      $table->string('name');
      $table->string('avatar')->nullable();
      $table->string('remember_token', 100)->nullable();
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.roles_table'), function (Blueprint $table) {
      $table->increments('id');
      $table->string('name', 50)->unique();
      $table->string('slug', 50);
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.permissions_table'), function (Blueprint $table) {
      $table->increments('id');
      $table->string('name', 50)->unique();
      $table->string('slug', 50);
      $table->string('http_method')->nullable();
      $table->text('http_path')->nullable();
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.menu_table'), function (Blueprint $table) {
      $table->increments('id');
      $table->integer('parent_id')->default(0);
      $table->integer('order')->default(0);
      $table->string('title', 50);
      $table->string('icon', 50);
      $table->string('uri', 50)->nullable();

      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.role_users_table'), function (Blueprint $table) {
      $table->integer('role_id');
      $table->integer('user_id');
      $table->index(['role_id', 'user_id']);
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.role_permissions_table'), function (Blueprint $table) {
      $table->integer('role_id');
      $table->integer('permission_id');
      $table->index(['role_id', 'permission_id']);
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.user_permissions_table'), function (Blueprint $table) {
      $table->integer('user_id');
      $table->integer('permission_id');
      $table->index(['user_id', 'permission_id']);
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.role_menu_table'), function (Blueprint $table) {
      $table->integer('role_id');
      $table->integer('menu_id');
      $table->index(['role_id', 'menu_id']);
      $table->timestamps();
    });

    Schema::connection($connection)->create(config('admin.database.operation_log_table'), function (Blueprint $table) {
      $table->increments('id');
      $table->integer('user_id');
      $table->string('path');
      $table->string('method', 10);
      $table->string('ip', 15);
      $table->text('input');
      $table->index('user_id');
      $table->timestamps();
    });
  }

  /**
   * Reverse the migrations.
   *
   * @return void
   */
  public function down()
  {
    $connection = config('admin.database.connection') ?: config('database.default');

    Schema::connection($connection)->dropIfExists(config('admin.database.users_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.roles_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.permissions_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.menu_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.user_permissions_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.role_users_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.role_permissions_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.role_menu_table'));
    Schema::connection($connection)->dropIfExists(config('admin.database.operation_log_table'));
  }
}

清除配置文件缓存

vagrant@homestead:~/Code/laravel-shop$ php artisan config:cache

再次执行发布命令,就可以了:

vagrant@homestead:~/Code/laravel-shop$ php artisan admin:install
Migrating: 2016_01_04_173148_create_admin_table
Migrated: 2016_01_04_173148_create_admin_table
Admin directory was created: /app/Admin
HomeController file was created: /app/Admin/Controllers/HomeController.php
ExampleController file was created: /app/Admin/Controllers/ExampleController.php
Bootstrap file was created: /app/Admin/bootstrap.php
Routes file was created: /app/Admin/routes.php
vagrant@homestead:~/Code/laravel-shop$

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • php阻止页面后退的方法分享

    php阻止页面后退的方法分享

    这篇文章主要介绍了php阻止页面后退的方法,让后退的页面不存在就可以阻止页面后退,怎么让页面不存在呢,临时生成的页面就可以,下面用实例说明这个方法
    2014-02-02
  • php实现在站点里面添加邮件发送的功能

    php实现在站点里面添加邮件发送的功能

    开发了一个简单的空间管理系统,将所有的域名空间保存到数据库里面进行管理,在用户进行续费的时候就进行发送一个邮件来进行通知,然后我这边进行续费操作,正好用到一个邮件发送的功能,那如何实现邮件发送的功能
    2016-04-04
  • PHP 7.0新增加的特性介绍

    PHP 7.0新增加的特性介绍

    这篇文章主要介绍了PHP 7.0新增加的特性介绍,需要的朋友可以参考下
    2017-06-06
  • 跟我学Laravel之请求(Request)的生命周期

    跟我学Laravel之请求(Request)的生命周期

    这篇文档包含了关于请求生命周期的高层次概述,以及启动文件和应用程序事件的相关内容。是篇非常不错的文章,有需要的朋友可以参考下
    2014-10-10
  • PHP+MYSQL实现用户的增删改查

    PHP+MYSQL实现用户的增删改查

    本文给大家分享的是使用PHP+MYSQL实现用户的增删改查功能的全部页面代码,非常的详细,也很实用,适合php的初学者,有需要的小伙伴参考下。
    2015-03-03
  • 详解php中的implements 使用

    详解php中的implements 使用

    php类中接口的应用关键字是interface、implements了,接口是一种成员属性全部为抽象或常量的特殊抽象类,implements主要是对类名,类所拥有的方法,以及所传参数起约束和规范做用,有点像 abstract 抽象类
    2017-06-06
  • Laravel 5框架学习之模型、控制器、视图基础流程

    Laravel 5框架学习之模型、控制器、视图基础流程

    本文给大家介绍的是Laravel5框架中模型、控制器、视图的基础流程,其实MVC体系结构模式将一个交互式系统分为三个组件。模型包含核心功能和数据。视图向用户显示信息。控制器处理用户输入。视图和控制器共同构成了用户接口。
    2015-04-04
  • PHP中is_file()函数使用指南

    PHP中is_file()函数使用指南

    php中is_file()函数是用来判断文件是否存在,使用方法也非常的简单,有需要的小伙伴可以参考下。
    2015-05-05
  • PHP实现简易blog的制作

    PHP实现简易blog的制作

    本篇文章主要介绍了PHP实现简易blog的制作,可以显示添加删除blog,有需要的可以了解一下。
    2016-10-10
  • phpcms配置列表页以及获得文章发布时间

    phpcms配置列表页以及获得文章发布时间

    这篇文章主要介绍了phpcms配置列表页以及获得文章发布时间 ,需要的朋友可以参考下
    2017-07-07

最新评论