在laravel 5.3中使用模型工厂创建表播种器时出现错误,但我不知道我要在哪里出错。Laravel:运行时出错Seeder
[ErrorException] 传递给Illuminate \ Database \ Grammar :: parameterize()的参数1必须是在D:\ Coding \ php \ laravel \ simple-blog \ vendor \ laravel中调用的数组,字符串类型\框架的\ src \照亮\数据库\查询\语法\ Grammar.php上线660和定义
这里是我的代码:
型号:
<?php
namespace app;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $table = 'articles';
}
模型厂:
$factory->define(app\Article::class, function (Faker\Generator $faker){
return [
'title' => $faker->sentences(5),
'content' => $faker->text(),
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
];
});
迁移:
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
ArticlesTableSeeder:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Faker\Factory as Faker;
use app\Article as Article;
class ArticlesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(Article::class)->create();
}
}
由于laravel 5.3一切都返回一个集合,而不是一个数组。这就是为什么你有这个错误。如果你在一个集合上这样做,不太了解factory/faker,所以不知道你应该在哪里添加 - > get()或 - > all(),但应该解决它。 – Christophvh