Php 在Laravel中验证表单请求中的数据时出现问题

Php 在Laravel中验证表单请求中的数据时出现问题,php,laravel,validation,Php,Laravel,Validation,我在Laravel blade中有一个表单,我在验证数据时遇到问题。我以$request->validate(['some_data'=>'some_value'])为例验证了控制器中的数据。我把它放在变量$validatedData中,我在会话put方法和in-fill方法中使用变量bellow,它工作得很好。我所做的是尝试重构代码,并将验证放在FormRequest中,删除变量$validatedData,并将$request替换为它。当我这样做的时候,它显示了一个错误 Argument 1

我在Laravel blade中有一个表单,我在验证数据时遇到问题。我以$request->validate(['some_data'=>'some_value'])为例验证了控制器中的数据。我把它放在变量$validatedData中,我在会话put方法和in-fill方法中使用变量bellow,它工作得很好。我所做的是尝试重构代码,并将验证放在FormRequest中,删除变量$validatedData,并将$request替换为它。当我这样做的时候,它显示了一个错误

Argument 1 passed to Illuminate\Database\Eloquent\Model::fill() must be of the type array, object given
它崩溃了,因为现在$request不像以前那样是一个数组,而是一个对象。我该如何解决这个问题?感谢您的帮助。这是我的密码

控制器

public function postStepOne(FirstFormRequest $request)
{
    // $validatedData = $request->validate(['some_data' => 'some_value', etc.]);

    if(empty($request->session()->get('questionnaire'))){
        $questionnaire = new Questionnaire();
        $questionnaire->fill($request); IT WAS $validatedData BEFORE
        $request->session()->put('questionnaire', $questionnaire);
    } else {
        $questionnaire = $request->session()->get('questionnaire');
        $questionnaire->fill($request); // IT WAS $validatedData BEFORE
        $questionnaire->session()->put('questionnaire', $questionnaire);
    }

    return redirect()->route('questionnaires.create.step.two');
}
FirstFormRequest

public function rules()
{
    return [
      'business' => 'required',
      'residing' => 'required|in:yes,no',
      'different_address' => 'required_if:residing,yes',
      'business_address' => 'required_if:different_address,no',
      'company_name' => 'required|string|max:255',
    ];
}

您可以使用
validated
方法从表单请求中获取已验证的输入:

$questionnaire->fill($request->validated());
您可以在一条语句中进行初始化和填充:

$questionnaire = new Questionnaire($request->validated());

您可以使用
validated
方法从表单请求中获取已验证的输入:

$questionnaire->fill($request->validated());
您可以在一条语句中进行初始化和填充:

$questionnaire = new Questionnaire($request->validated());

您是否只想将“已验证”字段传递给
fill(…)
或请求的所有可能输入?@lagbox我想将已验证字段传递给fill method您是否有意不保存模型?@lagbox是的。$request是FirstFormRequest类的对象-因此出现错误。您正试图将$request对象传递给fill方法。您应该执行
$inventory->fill($request->all())
$inventory->fill($request->validated())
是否只将“validated”字段传递给
fill(…)
或请求的所有可能输入?@lagbox我想传递已验证的字段以填充方法是否有意不保存模型?@lagbox是的。$request是FirstFormRequest类的对象-因此出现错误。您正试图将$request对象传递给fill方法。你应该做
$inventory->fill($request->all())
$inventory->fill($request->validated())
是的,就是这样,谢谢!关于您编写的一个station初始化和填充,只有一件事。我可以用“新的自我”来调用新的问卷类吗?如果你在模型类的上下文中是的,但是你是从控制器(模型之外)来做的是的,我是从控制器来做的,但是我调用了构造方法QuestionnaireRepository,它调用问卷模型是的,就是这样,谢谢!关于您编写的一个station初始化和填充,只有一件事。我可以用“新的自我”来调用新的问卷类吗?如果你在模型类的上下文中是的,但你是从控制器(模型之外)执行此操作是的,我从控制器执行此操作,但我调用了构造方法QuestionnaireRepository,该方法调用问卷模型