【问题标题】:Laravel artisan not creating all columns [closed]Laravel工匠没有创建所有列[关闭]
【发布时间】:2015-01-05 02:01:30
【问题描述】:

OctoberCMS 创建此表时,只有 id 列。

我不知道为什么。

这是我的更新/createTable.php 文件中的类。

class CreateCellphoneTable extends Migration
{

  public function up()
  {
    Schema::create('iaff106_cell_phones', function($table)
    {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->integer('user_id')->unsigned()->nullable()->index();
        $table->string('label')->nullable();
        $table->string('phone')->index();
        $table->integer('provider_id')->nullable();
        $table->boolean('cantxt')->default(true);
        $table->boolean('published')->default(false);
        $table->timestamps();
    });
  }
}

我正在像这样执行工匠:

php artisan plugin:refresh IAFF106.CellPhone

【问题讨论】:

  • 创建了哪些列,没有创建哪些列?

标签: mysql laravel-4 laravel-artisan octobercms


【解决方案1】:

当您的 up() 函数中有重复的列时,有时会发生这种情况,请仔细检查您的列以确保。

【讨论】:

    【解决方案2】:

    事实证明,Artisan 不太擅长报告诸如拼写错误的 PHP 文件之类的问题。

    我在 version.yaml 文件中拼错了 createTable.php 文件。 Artisan 没有做任何事情,即使它没有抱怨,而且看起来一切正常。

    anand patel 的回答和我回来重新审视的结合帮助我找到了这个。

    【讨论】:

    • 在version.yaml中第一行是版本注释如果你已经指定第一行作为数据库迁移文件那么artisan命令没有效果。octobercms.com/docs/plugin/…
    【解决方案3】:

    我已经测试了你的代码,它创建了所有字段

    您是否导入了所有需要的类

    这是我的 createTable.php 代码

    <?php namespace IAFF106\CellPhone\Updates;
    use Schema;
    use October\Rain\Database\Updates\Migration;
    class CreateCellphoneTable extends Migration
    {
    
        public function up()
        {
            Schema::create('iaff106_cell_phones', function($table)
            {
                $table->engine = 'InnoDB';
                $table->increments('id');
                $table->integer('user_id')->unsigned()->nullable()->index();
                $table->string('label')->nullable();
                $table->string('phone')->index();
                $table->integer('provider_id')->nullable();
                $table->boolean('cantxt')->default(true);
                $table->boolean('published')->default(false);
                $table->timestamps();
            });
        }
    }
    

    version.yaml 中的代码是

    1.0.1:
          - First version of CellPhone
          - createTable.php
    

    我希望你在 version.yaml 文件中指定了 createTable.php

    【讨论】:

    • 我不知道发生这种类型的错误是否值得。我在这里尝试了所有建议但无法摆脱它。然后我尝试在我的 IDE 中运行代码( Netbeans),只需单击绿色箭头运行按钮。然后php artisan migrate commnad 就可以了。我不知道他为什么关闭了这个问题。它需要更多答案
    猜你喜欢
    • 2016-05-23
    • 2013-05-25
    • 2016-05-31
    • 2015-11-24
    • 2015-05-24
    • 2015-04-13
    • 2017-07-19
    • 2019-06-13
    • 1970-01-01
    相关资源
    最近更新 更多