Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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中播种_Php_Laravel_Laravel 4 - Fatal编程技术网

Php 表未在Laravel中播种

Php 表未在Laravel中播种,php,laravel,laravel-4,Php,Laravel,Laravel 4,我正试图在我的表格中添加初始数据,以开始在Laravel4.1中的开发工作,但没有一个是种子 例如,当我在以下系统上运行php-artisan-db:seed时,我得到了输出seed:ItemsTableSeeder: use Faker\Factory as Faker; class ItemsTableSeeder extends Seeder { public function run() { $f = Faker::create();

我正试图在我的表格中添加初始数据,以开始在Laravel4.1中的开发工作,但没有一个是种子

例如,当我在以下系统上运行
php-artisan-db:seed
时,我得到了输出
seed:ItemsTableSeeder

use Faker\Factory as Faker;

class ItemsTableSeeder extends Seeder {

    public function run()
    {
        $f = Faker::create();

        foreach(range(1, 10) as $index)
        {
            $price = round(rand(5, 100) + (rand(0, 99) / 10), 2);
            $name = $f->sentence(6);
            $shortname = explode(' ', $name, 3);

            Item::create([
                'sku'       => strtoupper(str_random(16)),
                'name'      => $name,
                'shortname' => implode(' ', array_slice($shortname, 0, 3)),
                'stock'     => rand(0, 100),
                'price'     => $price,
                'cost'      => round($price / rand(2, 3), 2),
                'weight'    => rand(0, 20) + (rand(1, 9) / 10),
                'width'     => rand(1, 20),
                'height'    => rand(1, 20),
                'length'    => rand(1, 20),
                'size'      => array_rand(['Standard', 'Oversized'], 1),
                'enabled'   => 'Y'
            ]);
        }
    }

}

然而,MySQL工作台中的快速选择显示表仍然是空的。我将此设置设置为在任何其他表之前进行种子设定,因为
items
之后的表必须执行查找以引用该表中的项ID,才能创建自己的种子。当他们找不到任何项目ID时,它会在此之后中断其余的种子。

bootstrap/start.php
中的
detectEnvironment()
设置没有被正确覆盖,因此在默认的
app/config/database.php
文件中默认为
sqlite
。正在默认sqlite数据库文件中进行种子设定


我使用了
dev
而不是
local
作为开发服务器的密钥。

对于将来来到这里的用户:

您需要将正在创建的每个seeder类添加到DatabaseSeeder.php,如下所示:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // Add every single seeder class here
        $this->call(UserSeeder::class);
        $this->call(NewsSeeder::class);
    }
}

就连我也遇到了这个问题。只需打开数据库并手动输入数据