Php 如何在Laravel 5.4中的播种机中使用modelfactory
我在NewsTableSeeder中使用模型工厂,但当我输入db:seed时,出现了这个错误 我想知道为什么不能在播种机中使用create() 以下是我的新闻模型:Php 如何在Laravel 5.4中的播种机中使用modelfactory,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我在NewsTableSeeder中使用模型工厂,但当我输入db:seed时,出现了这个错误 我想知道为什么不能在播种机中使用create() 以下是我的新闻模型: <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class News extends Model { protected $table = 'news'; protected $primaryKey = 'id';
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class News extends Model
{
protected $table = 'news';
protected $primaryKey = 'id';
public function home_news_lists() {
return $this->select('id', 'news_title', 'news_update')
->orderBy('news_update', 'DESC')
->limit(5)
->get();
}
public function lists() {
return News::all();
}
}
新闻表种子:
<?php
use Illuminate\Database\Seeder;
class NewsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\Models\News::class, 50)->create();
}
}
$faker=$faker->create('zh_TW')
错误消息说此代码错误
您使用此代码的目的是什么?我无法100%地说出您所遇到的错误,但我确信,$faker
对象上没有create()
方法
我相信你的意思是:
$factory->define(App\Models\News::class, function (Faker\Generator $faker)
{
static $password;
$faker = \Faker\Factory::create('zh_TW'); // change to this
return [
...
];
}
我只需要创建一个新的伪造生成器(\faker\generator),它从调用\faker\Factory::create($locale)
返回,并使用它。否则,我相信您的下一个最佳选择是覆盖Laravel实例化传递到回调中的\Faker\Generator$Faker
对象的任何位置,但如果Laravel不提供干净的方法,这可能会有问题
create()
方法是对\Faker\Factory
方法的静态调用。它接受区域设置作为参数,并使用en_US
作为默认区域设置你有什么报错提示嘛,请邮递出来你能把错误包括进来吗?我没有发现我的错误信息没有上传。很抱歉
$factory->define(App\Models\News::class, function (Faker\Generator $faker)
{
static $password;
$faker = \Faker\Factory::create('zh_TW'); // change to this
return [
...
];
}