【发布时间】:2017-06-12 01:14:35
【问题描述】:
当我尝试将数据播种到数据库中的表时出现错误。我有 2 个表:author 和 books。该表具有使用 ORM 的关系。但是,当我尝试使用
执行它时php artisan migrate:refresh --seed
我收到了这个错误:
找不到四位数字 数据丢失。
这是我的代码
我的模特“作者”:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Author extends Model
{
protected $fillable = ['name'];
public function books(){
return $this->hasMany('App\Book');
}
}
模型“书籍”:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
protected $fillable = ['name','author_id','amount'];
public function author(){
return $this->belongsTo('App\Author');
}
}
我的播种机代码:
<?php
use Illuminate\Database\Seeder;
use App\Author;
use App\Book;
class BooksSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$author1 = Author::create(['Muhammad Ariel Purnama']);
$author2 = Author::create(['Titania Eka Yuliandini']);
$author3 = Author::create(['Shikaku kookokokoko']);
$book1 = Book::create(['title' => 'goood boy', 'amount' => 3, 'author_id' => $author1->id]);
$book2 = Book::create(['title' => 'life observer', 'amount' => 4,'author_id' => $author2->id]);
$book3 = Book::create(['title' => 'Blekok Borokokko', 'amount' => 2, 'author_id' => $author3->id]);
}
}
还有我的 DatabaseSeeder 代码:
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(PostsTableSeeder::class);
$this->call(UsersSeeder::class);
$this->call(BooksSeeder::class);
}
}
感谢您的关注。
【问题讨论】:
-
我不能肯定地说这是问题所在,但是当您创建作者时,您会丢失数组中的键。
$author1 = Author::create(['name' => 'Muhammad Ariel Purnama']); // etc.
标签: php laravel-5.3