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

时间:2019-01-31 08:54:08

标签: php laravel

我在父类中创建了一个图片上传方法。现在我想将输入图像文件从子类传递给该方法。传递文件时出现错误。

父类,

E69CAC

子类,

class BaseController extends Controller{

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

}

我得到一个错误:在null上调用成员函数isValid()。 请问有人可以帮助我吗?在此先感谢:)

2 个答案:

答案 0 :(得分:0)

您在调用上载函数时在子类中传递了$ file参数,但随后在上载函数本身中覆盖了它。

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

 }

答案 1 :(得分:0)

您不会在父类的上载方法中发送请求对象,因此只需以此替换您的子类方法,

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