Laravel造假者-为任务表生成随机的user_id

问题描述 投票:1回答:1

对于我的任务表,我一直得到SQLSTATE [23000]:违反完整性约束:1048列'user_id'不能为空]当我运行php artisan migrate --seed

这是我的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;
        }
         */
    ];
});

这是我的DatabaseSeeder

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());
         });
    }
}

对于我的任务表,我一直在获取SQLSTATE [23000]:违反完整性约束:1048当我运行php artisan migration --seed时,'user_id'列不能为null这是TasksFactory.php使用的代码...

php laravel faker laravel-migrations laravel-seeding
1个回答
0
投票

尝试。此User::all()->random()->user_id,

© www.soinside.com 2019 - 2024. All rights reserved.