Laravel5的数据库表建立问题

ringa_lee
Freigeben: 2023-02-28 12:10:02
Original
1875 Leute haben es durchsucht


我跟着@JellyBool的视频学习。
在CMD命令行上运行了下面的命令。

php artisan make:migration create_articles_table --create=articles
Nach dem Login kopieren

然后在 2015_10_23_022143_create_articles_table.php 中书写了下面的代码

public function up()
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->text('content');
            $table->timestamps('published_at');
            $table->timestamps();
        });
    }
Nach dem Login kopieren
Nach dem Login kopieren

接着在CMD上运行就弹出错误了,数据库里也没有显示articles表,是哪个地方出现了字段重复?

D:\laravel>php artisan migrate



  [Illuminate\Database\QueryException]
  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created
  _at' (SQL: create table `articles` (`id` int unsigned not null auto_increme
  nt primary key, `title` varchar(255) not null, `content` text not null, `cr
  eated_at` timestamp default 0 not null, `updated_at` timestamp default 0 no
  t null, `created_at` timestamp default 0 not null, `updated_at` timestamp d
  efault 0 not null) default character set utf8 collate utf8_unicode_ci)


  [PDOException]
  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created
  _at'
Nach dem Login kopieren

回复内容:

我跟着@JellyBool的视频学习。
在CMD命令行上运行了下面的命令。

php artisan make:migration create_articles_table --create=articles
Nach dem Login kopieren

然后在 2015_10_23_022143_create_articles_table.php 中书写了下面的代码

public function up()
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->text('content');
            $table->timestamps('published_at');
            $table->timestamps();
        });
    }
Nach dem Login kopieren
Nach dem Login kopieren

接着在CMD上运行就弹出错误了,数据库里也没有显示articles表,是哪个地方出现了字段重复?

D:\laravel>php artisan migrate



  [Illuminate\Database\QueryException]
  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created
  _at' (SQL: create table `articles` (`id` int unsigned not null auto_increme
  nt primary key, `title` varchar(255) not null, `content` text not null, `cr
  eated_at` timestamp default 0 not null, `updated_at` timestamp default 0 no
  t null, `created_at` timestamp default 0 not null, `updated_at` timestamp d
  efault 0 not null) default character set utf8 collate utf8_unicode_ci)






  [PDOException]
  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created
  _at'
Nach dem Login kopieren


好吧 终于发现了 是我的疏忽大意

$table->timestamps('published_at');
应该改为
$table->timestamp('published_at');
Nach dem Login kopieren

timestamps()与timestamp()不同。前者是一个 Laravel 用来管理创建和修改作为created_at和updated_at TIMESTAMP列的方法。所以跟下面的方法重复了,导致出现字段重复的问题


楼主,我执行php artisan migrate
的时候就失败,你怎么可以执行成功
[PDOException]
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using pas
sword: YES)

我用的5.1版本.evn文件修改如下:
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=secret
执行上面呢句就报错

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage