Laravel 背包表单请求输入为空

Laravel backpack form request getting empty input

Laravel 背包自动生成 crud 表单请求。我应该如何从表单请求中获取输入以在唯一验证中使用它,例如:电子邮件?

我试过dd($this),但是所有的值都是空的或null。我认为请求根本没有传递?

public function rules()
{
    return [
        'email' => 'required|unique:users,email', $this->id
    ];
}

我希望从请求中获取 ID 并将其用于我的唯一表单验证

如果你 dd($this) 你什么也得不到,因为方法 rules() 是在页面加载时调用的,而不仅仅是在表单提交时调用的。如果你想检查提交的值,你可以使用类似:

if (!$this->id) dd($this);

然后在request->parameters下可以看到请求中包含的所有字段的值

我们可以通过下面的简单方法获取id,我试过了,对我有用。

public function rules()
{
    $id = $this->get('id') ?? request()->route('id');
    return [
        'email' => 'required|unique:users,email', $id
    ];
}

引用自下面提到的url

https://github.com/Laravel-Backpack/PermissionManager/blob/master/src/app/Http/Requests/UserUpdateCrudRequest.php