Laravel FormRequest获取输入值

时间:2017-10-10 10:37:09

标签: php laravel laravel-5

我尝试使用FormRequest:

class RegistrationForm extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name'=>'required',
            'email'=>'required|email',
            'password'=>'required|confirmed'
        ];
    }

    public  function persist(){
        $user=new User();
        $user->name=$this->only(['name']);
        $user->email=$this->only(['email']);
        dd($this->only(['password']);
        auth()->login($user);
    }
}

我需要从我的请求中获取persist()方法输入值。我试图获得密码'价值,但我有阵。 如何获得像字符串一样的输入值?

4 个答案:

答案 0 :(得分:3)

您可以使用input()函数获取值:

public function persist() {
    $user = new User();
    $user->name = $this->input('name');
    $user->email = $this->input('email');
    dd($this->input('password'));
    auth()->login($user);
}

Ps:我建议您在控制器中执行逻辑,而不是在请求类中。

答案 1 :(得分:0)

使用array_get方法。

$value = array_get($your_array, 'key_name');

PS array_get接受第三个参数,当在给定数组中找不到给定键时返回该参数。

答案 2 :(得分:0)

根据文档FormRequest :: only将返回数组类型数据。您需要从该数组中提取值。

FormRequest::only

答案 3 :(得分:0)

表单请求类扩展了请求类,因此您可以使用 $this 引用当前请求(和任何方法),即 $this->input('password').