Php 对数组laravel调用成员函数getClientOriginalName()

Php 对数组laravel调用成员函数getClientOriginalName(),php,laravel,crud,one-to-one,Php,Laravel,Crud,One To One,我试图发布一个一对多关系的图片,同时也在做CRUD(创建部分),但我在做这件事时遇到了一些麻烦。每当我尝试使用associate与user\u image table中的user\u info一起定义关系时,我总是会得到这个错误,调用数组上的成员函数getClientOriginalName()。那我该怎么办 这是我的密码: createController: public function create1(){ return view('create1'); } public fu

我试图发布一个一对多关系的图片,同时也在做CRUD(创建部分),但我在做这件事时遇到了一些麻烦。每当我尝试使用associate与user\u image table中的user\u info一起定义关系时,我总是会得到这个错误,调用数组上的成员函数getClientOriginalName()。那我该怎么办

这是我的密码: createController:

public function create1(){

    return view('create1');
}

public function store1(Request $request){
     $this->validate($request, [
        'input_img' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

 $user_info = Session::get('data');
      $UserImage = new UserImage($request->input()) ;


     if($file = $request->hasFile('input_img')) {
      $file = array();



        $fileName = $file->getClientOriginalName() ;
        $destinationPath = public_path().'/images' ;
        $file->move($destinationPath,$fileName);
        $UserImage->userImage = $fileName ;
        $UserImage = UserImage::create(['file' => $request->file('input_img')]);
        $UserImage->user_infos()->associate($user_info);
    }

    $UserImage->save() ;

    return redirect('/home');
}
HomeController(这是我打印信息的地方)

php(如何在视图中显示图像)

php(这就是我上传图像的方式)


{{csrf_field()}}
上传图像

再次阅读
store1
方法中的逻辑。。。您正在将
$file
变量设置为空数组,然后尝试对其调用
getClientOriginalName()
方法:

$file = array();

$fileName = $file->getClientOriginalName();

我认为您在
store1()
方法中遇到了问题。您不应该重新声明
$file

if($file = $request->hasFile('input_img')) {

    $file = array();

    $fileName = $file->getClientOriginalName();
而是使用
file()
方法获取文件:

if($request->hasFile('input_img')) {

    $file = $request->file('input_img');

    $fileName = $file->getClientOriginalName();

请参阅。

哪一行的哪个文件出现了错误?我在这一行看到“$fileName=$file->getClientOriginalName();”嗨,Camilo,tks,我的回答是,我现在出现了这个错误,“在布尔值上调用成员函数getClientOriginalName()”,知道吗,您需要通过调用
$request->input\img
$request->file('input\img')
获取上传的文件。更新我的答案。嗨,卡米洛,你的答案有效!!tks很多,但突然之间它无法保存到数据库中,这是因为您试图将文件本身存储到数据库中。一种常见的做法是只存储文件名,但我想根据user_info和userImage表之间关系的user_id检索它并在我的blade.php中显示它。例如,Jack(用户信息中的id=1)必须链接回图像(用户图像中的用户id=1)。还是有其他方法代替数据库本身
     <form class="form-horizontal" method="post" action="{{ url('/userUpload')}}" enctype="multipart/form-data">

                        {{  csrf_field()  }}


<div class="form-group">
    <label for="imageInput" class="control-label col-sm-3">Upload Image</label>
            <div class="col-sm-9">
            <input data-preview="#preview" name="input_img" type="file" id="imageInput">
            <img class="col-sm-6" id="preview"  src="" ></img>
        </div>
    </div>

 <div class="form-group">
            <div class="col-md-6-offset-2">
              <input type="submit" class="btn btn-primary" value="Save">
            </div>
          </div>
          </form>
$file = array();

$fileName = $file->getClientOriginalName();
if($file = $request->hasFile('input_img')) {

    $file = array();

    $fileName = $file->getClientOriginalName();
if($request->hasFile('input_img')) {

    $file = $request->file('input_img');

    $fileName = $file->getClientOriginalName();