如何将输入图像文件传递给PHP中的父类方法?

I created an image uploading method in my parent class. now I want to pass an input image file to that method from my child class. I am getting an error when I pass the file.

Parent class,

class BaseController extends Controller{

public function upload($file,$fname,$a,$b,$c){
     $file = $request->file('featured');
    if ($file->isValid()) {
       .....
    }else {
       .....
    }
}

}

Child class,

class PageController extends BaseController{

public function store(Request $request)
{
BaseController::upload($file,'pages',$request->banner_alt,
$request->banner_caption,$request->banner_description);

}

}

And I get an error: Call to a member function isValid() on null. Could anybody here help me, please? Thanks in Advance :)

You are passing the $file parameter in the child class when you call the upload function, but then you override it in the upload function itself.

class BaseController extends Controller
{
     public function upload($file, $fname, $request){
          $a = $request->banner_alt;
          $b = $request->banner_caption;
          $c = $request->banner_description;

          // Maybe: 
          // $file = $request->file($fname)
          // ?
          $file = $request->file('featured');
          if ($file->isValid()) {
             .....
          }else {
             .....
          }
     }
}


// Child class
class PageController extends BaseController
{
    public function store($file, Request $request)
    {
         BaseController::upload($file, 'pages', $request);
    }

 }

You are not sending request object in upload method of your parent class so just replace your child class method by this,

public function store(Request $request)
{
    BaseController::upload($request,'pages',$request->banner_alt,
    $request->banner_caption,$request->banner_description);
}