Laravel artisan[ 工匠,技工] 的 tinker 是一个 REPL (read-eval-print-loop),REPL 是指 交互式命令行界面,它可以让你输入一段代码去执行,并把执行结果直接打印到命令行界面里。初次看到界面,让我以为是python呢。(>>>三个向右的箭头)。 使用的应该是PsySH这里是官网,英文还可以的同学去看看。
废话少说,直奔主题。本文测试环境:windows 10 .laravel 5.5.44(可以通过 php artisan -V 查看)
1 首先打开cmd,跳转到项目目录下,执行
php artisan make:model Models\Jack
会在app->Models中生成JackModel.php文件
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Jack extends Model
{
//表名
protected $table = 'jacks';
//使用create_at和update_at字段
public $timestamps = true;
//可以填充的字段
protected $fillable = [
'name',
'age',
'password',
'img',
'mobile',
'bank',
'address',
'century',
'city',
'chrome',
'country',
'companyEmail',
'email',
'countryCode',
'citySuffix',
'creditCardNumber',
'creditCardDetails',
'date',
'domainName',
'firstName',
'internetExplorer',
'word',
'words',
'userAgent',
'unixTime',
'streetAddress',
'title',
'slug',
'swiftBicNumber',
'windowsPlatformToken',
'sha1',
'sha256',
'shuffle',
'safeEmail',
'safeHexColor',
'rgbCssColor',
'safari',
'ipv4',
'localIpv4',
'macAddress',
'url',
'monthName',
'content',
'status',
];
//受保护的字段-这个字段不可写入
protected $guarded = ['id'];
}
2 接着生成migration [迁移,移民]
php artisan make:migration Jack [也可以php artisan make:model Models\Jack 添加 -m 选项一并生成migrate 文件]
会在database->migrations文件夹中生成类似名称为:2018_11_30_145730_jack.php的文件,打开文件,修改其中的up方法为下面内容:
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('jacks', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->string('password');
$table->string('img');
$table->string('mobile');
$table->string('bank');
$table->string('address');
$table->string('century');
$table->string('city');
$table->string('chrome');
$table->string('country');
$table->string('companyEmail');
$table->string('email');
$table->string('countryCode');
$table->string('citySuffix');
$table->string('creditCardNumber');
$table->string('creditCardDetails');
$table->string('date');
$table->string('domainName');
$table->string('firstName');
$table->string('internetExplorer');
$table->string('word');
$table->string('words');
$table->string('userAgent');
$table->string('unixTime');
$table->string('streetAddress');
$table->string('title');
$table->string('slug');
$table->string('swiftBicNumber');
$table->string('windowsPlatformToken');
$table->string('sha1');
$table->string('sha256');
$table->string('shuffle');
$table->string('safeEmail');
$table->string('safeHexColor');
$table->string('rgbCssColor');
$table->string('safari');
$table->string('ipv4');
$table->string('localIpv4');
$table->string('macAddress');
$table->string('url');
$table->string('monthName');
$table->longText('content');
$table->smallInteger('status');
$table->timestamps();
});
}
3 生成数据表jacks
php artisan migrate --path=/database/migrations/2018_11_30_145730_jack.php
查看所连接的数据库,应该有jacks表生成.
4 填充数据-生成Factory文件
php artisan make:factory JackFactory
会在database->factories文件夹中生成JackFactory.php
<?php
use Faker\Generator as Faker;
$factory->define(App\Models\Jack::class, function (Faker $faker) {
return [
];
});
编辑return的数组内容
'name' => $faker->name,
'age' => $faker->numberBetween(15,90),
'password'=>str_random(6),
'img'=>$faker->imageUrl(),
'mobile' => $faker->phoneNumber,
'bank'=>$faker->bankAccountNumber,
'address'=>$faker->address,
'century'=>$faker->century,
'city'=>$faker->city,
'chrome'=>$faker->chrome,
'country'=>$faker->country,
'companyEmail'=>$faker->companyEmail,
'email'=>$faker->email,
'countryCode'=>$faker->countryCode,
'citySuffix'=>$faker->citySuffix,
'creditCardNumber'=>$faker->creditCardNumber,
'creditCardDetails'=>json_encode($faker->creditCardDetails),
'date'=>$faker->date('Y-m-d H:i:s','now'),
'domainName'=>$faker->domainName,
'firstName'=>$faker->firstName,
'internetExplorer'=>$faker->internetExplorer,
'word'=>$faker->word,
'words'=>$faker->words(5,true),
'userAgent'=>$faker->userAgent,
'unixTime'=>$faker->unixTime,
'streetAddress'=>$faker->streetAddress,
'title'=>$faker->sentence,
'slug'=>$faker->slug(20,false),
'swiftBicNumber'=>$faker->swiftBicNumber,
'windowsPlatformToken'=>$faker->windowsPlatformToken,
'sha1'=>$faker->sha1,
'sha256'=>$faker->sha256,
'shuffle'=>$faker->shuffle('abcdefghijklmnopqrst'),
'safeEmail'=>$faker->safeEmail,
'safeHexColor'=>$faker->safeHexColor,
'rgbCssColor'=>$faker->rgbCssColor,
'safari'=>$faker->safari,
'ipv4'=>$faker->ipv4,
'localIpv4'=>$faker->localIpv4,
'macAddress'=>$faker->macAddress,
'url'=>$faker->url,
'monthName'=>$faker->monthName,
'content'=>$faker->text(500),
'status' => random_int(0,1)
5 接着进入tinker
php artisan tinker
在tinker中执行:
factory(App\Models\Jack::class,50)->create();
第一个参数为app->Models文件夹中的Jack的类,第二个参数是调用50次, 执行完毕后,jacks表里面应该会有50条数据。至此目的达成.
PS:如果有错误提示,可以退出tinker 执行,php artisan cache:clear