Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel 5.6中设定数据库种子时出现Illumb\Database\QueryException错误_Php_Laravel - Fatal编程技术网

Php 在Laravel 5.6中设定数据库种子时出现Illumb\Database\QueryException错误

Php 在Laravel 5.6中设定数据库种子时出现Illumb\Database\QueryException错误,php,laravel,Php,Laravel,我已经想了差不多两天了。我有一个这样的播种机: class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call([ 'RolesTableSeeder', 'Use

我已经想了差不多两天了。我有一个这样的播种机:

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call([
            'RolesTableSeeder',
            'UserTableSeeder',
            'DevelopersTableSeeder',
            'ESRBRatingTableSeeder',
            'GameGenreTableSeeder',
            'ManufacturerTableSeeder',
            'PlatformsTableSeeder',
            'PublishersTableSeeder',
            'GamesTableSeeder',
            'CommunitiesTableSeeder'
        ]);
    }
}
public function run()
{

    $platform = Platform::where('name', '=', 'Nintendo 3DS')->first(); 
    $esrb = EsrbRating::where('rating', '=', 'E')->first(); 
    $dev = Developer::where('name', '=', 'GameFreak')->first(); 
    $pub = Publisher::where("name", "Nintendo")->first(); 
    $genre = GameGenre::where('genre', 'Role-Playing')->first(); 

    DB::table('games')->insert([
        'title' => 'Pokemon Sun',
        'description' => "Pokemon Sun version for the Nintendo 3DS",
        'release_date' => new Carbon(),
        'minimum_players' => 1,
        'maximum_players' => 4,
        'platform' => $platform->id,
        'ESRBRating' => $esrb->id,
        'developer' => $dev->id,
        'publisher' => $pub->id,
        'genre' => $genre->id,
        'created_at' => new Carbon()
    ]);
}
但是,当我使用php artisan db:seed运行它时,我得到以下错误:

Illuminate\Database\QueryException  : SQLSTATE[22003]: Numeric value out of range: 1416 Cannot get geometry object from data you send to the GEOMETRY field (SQL: insert into `games` (`title`, `description`, `platform`, `ESRBRating`, `developer`, `publisher`, `genre`) values (Pokemon Sun, Pokemon Sun version for the Nintendo 3DS, 4, 1, 1, 1, 4))
我已确定GamesTableSeeder文件中触发的问题如下所示:

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call([
            'RolesTableSeeder',
            'UserTableSeeder',
            'DevelopersTableSeeder',
            'ESRBRatingTableSeeder',
            'GameGenreTableSeeder',
            'ManufacturerTableSeeder',
            'PlatformsTableSeeder',
            'PublishersTableSeeder',
            'GamesTableSeeder',
            'CommunitiesTableSeeder'
        ]);
    }
}
public function run()
{

    $platform = Platform::where('name', '=', 'Nintendo 3DS')->first(); 
    $esrb = EsrbRating::where('rating', '=', 'E')->first(); 
    $dev = Developer::where('name', '=', 'GameFreak')->first(); 
    $pub = Publisher::where("name", "Nintendo")->first(); 
    $genre = GameGenre::where('genre', 'Role-Playing')->first(); 

    DB::table('games')->insert([
        'title' => 'Pokemon Sun',
        'description' => "Pokemon Sun version for the Nintendo 3DS",
        'release_date' => new Carbon(),
        'minimum_players' => 1,
        'maximum_players' => 4,
        'platform' => $platform->id,
        'ESRBRating' => $esrb->id,
        'developer' => $dev->id,
        'publisher' => $pub->id,
        'genre' => $genre->id,
        'created_at' => new Carbon()
    ]);
}
正如您所看到的,这个表有几个外键,它们引用不同的表。我已经检查了其他播种机的结果,看看是否有任何一个是导致错误的原因。但是,它们似乎都起作用了

我非常感谢任何帮助,因为这件小事已经让我头疼了。可能是一些可笑的蠢事导致了我没有注意到

以下是表的迁移

Schema::create('games', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title')->unique(); 
            $table->multilineString('description'); 
            $table->datetime('release_date')->nullable(); 
            $table->integer('minimum_players')->unsigned()->default(1); 
            $table->integer('maximum_players')->unsigned()->default(1); 
            $table->timestamps();
            $table->softDeletes(); 
        });
这里是添加外键的地方:

Schema::table('games', function(Blueprint $table){
            $table->integer('platform')->unsigned(); 
            $table->integer('ESRBRating')->unsigned(); 
            $table->integer('developer')->unsigned(); 
            $table->integer('publisher')->unsigned();
            $table->integer('genre')->unsigned(); 

            $table->foreign('platform')->references('id')->on('platforms'); 
            $table->foreign('ESRBRating')->references('id')->on('esrb_ratings'); 
            $table->foreign('developer')->references('id')->on('developers'); 
            $table->foreign('publisher')->references('id')->on('publishers'); 
            $table->foreign('genre')->references('id')->on('game_genres'); 
        }); 

我认为字段
description
数据类型存在问题,即用于存储几何点而不是字符串的
multilestring
。请将描述字段更新为:

$table->text('description')
游戏
表格模式中。您可以通过以下方式为其创建新迁移:

Schema::table('games', function (Blueprint $table) {
    $table->text('description')->change();
});

运行它,然后再次运行播种机

是否添加表的迁移我更新了原始问题,以包括此表的迁移。谢谢你的帮助。