Php Laravel faker-为任务表生成随机用户id
对于我的任务表,我一直在获取SQLSTATE[23000]:完整性约束冲突:1048列“user\u id”在运行Php Laravel faker-为任务表生成随机用户id,php,laravel,faker,laravel-migrations,laravel-seeding,Php,Laravel,Faker,Laravel Migrations,Laravel Seeding,对于我的任务表,我一直在获取SQLSTATE[23000]:完整性约束冲突:1048列“user\u id”在运行php artisan migrate--seed时不能为null 这是我的TasksFactory.php的代码 use App\User; use App\Model\Task; use Faker\Generator as Faker; use Illuminate\Database\Eloquent\Model; $factory->define(Task::clas
php artisan migrate--seed时不能为null
这是我的TasksFactory.php的代码
use App\User;
use App\Model\Task;
use Faker\Generator as Faker;
use Illuminate\Database\Eloquent\Model;
$factory->define(Task::class, function (Faker $faker) {
$title = $faker->sentence;
return [
'title' => $title,
'slug' => str_slug($title),
'description' => $faker->text,
'user_id' => function () {
return User::all()->random();
}
/**
* I've also tried this
*
* 'user_id' => function () {
return factory(App\User::class)->create()->id;
}
*/
];
});
这是我的数据库播种器
use App\User;
use App\Model\Task;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
factory(User::class, 3)
->create()
->each(function ($u) {
$u->tasks()->save(factory(Task::class)->make());
});
}
}
我的任务模型是这样的,Mass Assignment设置为$guarded=[],user()方法表示与任务的关系
namespace App\Model;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
protected $guarded=[];
protected static function boot()
{
parent::boot();
static::creating(function ($task) {
$task->slug = str_slug($task->title);
$task->user_id = auth()->id();
});
}
public function getRouteKeyName()
{
return 'slug';
}
public function user()
{
return $this->belongsTo(User::class);
}
public function getPathAttribute()
{
return "/task/$this->slug";
}
}