覆盖背包验证角色

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

我做了什么:

我正在尝试覆盖背包表单验证角色(更新请求)。

UserUpdateCrudRequest.php

use App\Http\Requests\Backpack\PermissionManager\UserUpdateCrudRequest as UpdateRequest;

class UserUpdateCrudRequest extends \Backpack\PermissionManager\app\Http\Requests\UserUpdateCrudRequest 
{

    function __construct()
    {
        parent::__construct();
    }

    public function authorize()
    {
        // only allow updates if the user is logged in
        return \Auth::check();
    }

    public function rules()
    {
        $rules = [
            'name'     => 'required',
            'password' => 'confirmed',
        ];

        return $rules;
    }
} 

应用程序/Http/Controllers/Admin/Backpack/PermissionManager/UserCrudController.php

 public function update(UpdateRequest $request)
    {
        //code
    }

我预期会发生什么:

电子邮件字段在创建时是强制性的,在更新时不是强制性的。

发生了什么:

ErrorException in UserCrudController.php line 18:
Declaration of App\Http\Controllers\Admin\Backpack\PermissionManager\UserCrudController::update() should be compatible with Backpack\PermissionManager\app\Http\Controllers\UserCrudController::update(Backpack\PermissionManager\app\Http\Requests\UserUpdateCrudRequest $request)
php laravel laravel-5.3 laravel-backpack
1个回答
-1
投票

如果我是对的, 在里面

UserCrudController
你有,

use Backpack\PermissionManager\app\Http\Requests\UserStoreCrudRequest as StoreRequest;

use Backpack\PermissionManager\app\Http\Requests\UserUpdateCrudRequest as UpdateRequest;

如果您想让电子邮件字段在更新时不是强制性的,您必须编辑

UserUpdateCrudRequest.php
内的
your-project/vendor/backpack/permissionmanager/src/app/Http/Requests
并删除行

'email'    => 'required',
© www.soinside.com 2019 - 2024. All rights reserved.