1
votes

What I did:

I am trying to override backpack form validation roles (update request).

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;
    }
} 

app/Http/Controllers/Admin/Backpack/PermissionManager/UserCrudController.php

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

What I expected to happen:

The email field is mandatory on create , and not mandatory on update.

What happened:

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)
1
public function update(UserUpdateCrudRequest $request) {//code}Sohel0415
@Sohel0415 same errorwahdan
try composer dump-autoloadSohel0415
@Sohel0415 noting happenedwahdan
what happens if you used public function update(Backpack\PermissionManager\app\Http\Requests\UserUpdateCrudRequest $request)Sohel0415

1 Answers

-1
votes

If I'm right, inside UserCrudController you have,

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

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

If you want to make the email field not mandatory on update you have to edit the UserUpdateCrudRequest.php inside your-project/vendor/backpack/permissionmanager/src/app/Http/Requests and remove the line

'email'    => 'required',