如何从Laravel中的控制器方法将参数传递给播种机?

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

我想创建一个动态模型。

实际上,我有这个播种机:

class TestSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('tests')->insert([
            'name_test' => $name_test
        ]);
    }
}

而且我需要从控制器发送参数:

public function addTest(Request $request)
{
    $request->validate([
            'name_test' => 'required|max:255'
        ], [
            'name_test.required' => 'Es necesario rellenar el campo de nombre',
            'name_test.max' => 'El nombre del test debe ser máxim de 255 catacteres',
        ]);

    $input = $request->all();

    //$test = Test::create($input);

    return back()->with('success', 'El test se ha creado correctamente.');
}

但是,我不知道该怎么做。

任何想法?

php laravel
1个回答
0
投票

您可以直接调用TestSeeder类:

$test = new TestSeeder;
$test->run($request->name_test);
public function run($name_test)
{
    DB::table('tests')->insert([
        'name_test' => $name_test
    ]);
}

但是,例如,在运行测试或要在本地环境中定期刷新数据库时,Laravel中的seeder类用于设置初始数据。您最好只是直接在控制器中运行插入-测试时没有错!

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