草庐IT

播种器

全部标签

php - 运行 php artisan db :seed more than one and continue for duplicate keys insert

我创建了一个用于在数据库中插入默认值的播种器。如果我多次运行这个播种器,mysql返回重复键错误,所以我的问题是处理此错误的最佳方法是什么?以及如何继续运行其他种子? 最佳答案 您不应该多次运行db:seed命令。更好的方法是重新创建所有表并使用此命令播种数据:phpartisanmigrate:refresh--seed或者在运行phpartisanmigrate:refresh命令后运行一次db:seed。https://laravel.com/docs/5.5/migrations#rolling-back-migration

php - Laravel 4 中的播种包表

我知道如何在Laravel4上设置包迁移(使用--bench="vendor/package"/--package="vendor/package")。但我似乎不知道如何为这些迁移设置种子?--澄清一下——我知道如何使用播种器,我需要知道的是如何为独立包设置种子文件?你可以给一个包单独的迁移...... 最佳答案 您可以像在应用程序文件夹中一样使用Seeder类。DatabaseSeedinginLaravel4例如:'Foo-Bar!'));}}并在:中指定“--class”参数$phpartisandb:seed--class=

php - Laravel 如何从数据库播种机调用控制台命令

我正在为我的Laravel实例的数据库编写一些播种器。我正在使用LaravelScoutTNTSearchdriver.phpartisantntsearch:importApp\\MyModel我想从我的播种机调用这个命令。我查看了实现,它非常复杂,我不想重构、等待合并的拉取请求或将实现复制并粘贴到我的文件中。我试过的播种机内部:$this->call('tntsearch:import',['model'=>App\User::class]);但是$this指的是播种机,call方法需要另一个播种机,而不是控制台命令。我想从我的播种机内部调用artisan命令。这可能吗?更新我最终

php - Laravel 用工厂播种但扩展它

我想要一个包含两个表Users和Companies的数据库,并且users表有一个带有公司ID的外键。所以1个公司可以有多个用户。我在laravel中为此创建了模型,还为每个表创建了一个工厂。在我的播种机中,我想一次创建多条数据线并找到了这个解决方案:factory(App\Company::class,10)->create();这适用于公司表。但我需要为用户表扩展它,以便它搜索可用的公司ID。我有什么想法可以做到这一点吗?如果我无法搜索可用的ID,我也很乐意使用“company_id”字段对其进行扩展,并为其赋予1-10之间的随机值(因为我知道这些是目前的ID)。所以基本上我想扩展

php - 如何播种自引用表 Laravel 5.1

如何从同一个表中为一个表添加两个外键,例如消息:迁移:publicfunctionup(){Schema::create('messages',function(Blueprint$table){$table->increments('id');$table->integer('to')->unsigned();$table->integer('from')->unsigned();$table->integer('parent_id')->unsigned()->nullable();$table->text('body');$table->boolean('status')->de

php - Laravel 播种机仅插入随机数的数据然后失败

我有这个播种机功能。它获取所有插入的用户,然后为每个用户生成一个随机数(从0到12)的个人资料图片。publicfunctionrun(){foreach(App\User::all()as$user){echo"Generatingprofilepicfor$user->name($user->id)...";$profile_pics=factory(App\Image::class,rand(0,12))->create();echocount($profile_pics)."generated.";echo"Saving...";foreach($profile_picsas$

php - Laravel 5.4 种子没有为所有表格播种

我在Laravel5.4中播种,但它只为一张表播种,其他表没有播种。播种机是使用以下命令创建的:phpartisanmake:seederseederName 最佳答案 您应该在DatabaseSeeder.php中注册所有播种器:$this->call(UsersTableSeeder::class);$this->call(PostsTableSeeder::class);$this->call(CommentsTableSeeder::class);WithintheDatabaseSeederclass,youmayuset

php - 如何在 Laravel 5.3 中播种日期字段?

我已经成功地为启动时需要在数据库中的数据设置了相当数量的种子。一切都很简单,运行良好,直到我需要为DATE字段设置默认日期。我尝试了以下...DatabaseSeeder.phpclassSettingsTableSeederextendsSeeder{publicfunctionrun(){Setting::create(['name'=>'StartDate','date'=>'2000-01-01']);}}在我的模型中,我被告知添加这个应该修复它,但它没有。Setting.phpprotected$dates=['created_at','updated_at','date']

php - Laravel4 数据库播种器错误 - 调用未定义的方法 SeedDummyOrders::setContainer()

我的数据库中有两个表:order_header订单详情我需要一些虚拟数据,所以我创建了以下SeedDummyOrders类:delete();DB::table('order_header')->delete();$inventory_ids=range(1,10);for($i=1;$iowner_id=1;$order->order_number='100'.$i;$order->delivery_type='Standard';$order->order_status='Received';$order->address_line1=$i.',SomeStreet';$order

php - 在 Laravel 中使用 PHP Faker 在使用工厂播种数据库时生成 "unique with"条目

所以类似于uniquewith验证规则(参见:https://github.com/felixkiss/uniquewith-validator),我想知道如何生成一个条目,其中一列与另一列是唯一的。我想按如下方式播种我的数据库。例子:“步骤”表中有12个步骤。每个步骤应该有5个类别,每个类别都存储在“step_categories”表中。这些类别中的每一个都被分配了一个唯一的订单号1到5,每个“step_id”都是唯一的。请在此处查看此图片以了解数据库的外观示例:https://imgur.com/a/XYA5yyn我必须手动为上面的图像示例在数据库中创建条目。我不想每次都手动生成这