Laravel5的数据库表建立问题

ringa_lee
發布: 2023-02-28 12:10:02
原創
1874 人瀏覽過


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

php artisan make:migration create_articles_table --create=articles
登入後複製

然后在 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();
        });
    }
登入後複製
登入後複製

接着在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'
登入後複製

回复内容:

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

php artisan make:migration create_articles_table --create=articles
登入後複製

然后在 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();
        });
    }
登入後複製
登入後複製

接着在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'
登入後複製


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

$table->timestamps('published_at');
应该改为
$table->timestamp('published_at');
登入後複製

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
执行上面呢句就报错

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板