在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