【发布时间】:2021-05-17 18:52:09
【问题描述】:
我试图上传多张图片,但是当我在服务器上推送此代码时,它给了我 hashName 错误。
这是错误:
在 null 上调用成员函数 hashName()
HTML 代码:
<form action="{{ route('products.store') }}" method="post" enctype="multipart/form-data">
<!-- Add CSRF Token -->
@csrf
<div class="form-group">
<label>Product Name</label>
<p> le nom du theme <input type="text" class="form-control" name="name" required></p>
</br>
<p>la description du theme<input type="text" class="form-control" name="description" required</p>
<div class="form-group">
<input type="file" name="image" required>
<input type="file" name="image2" required>
<input type="file" name="image3" required>
<input type="text" class="form-control" name="prix" required>
<input type="text" class="form-control" name="nb_download" required>
<input type="file" name="file" required>
<button type="submit">Submit</button>
</div>
</form>
路线:
route::resource('products','App\http\controllers\TemplatesController');
templatesController(存储功能):
public function store(Request $request)
{
$templates = new templates([
"name" => $request->get('name'),
"description"=>$request->get('description'),
"image_path"=>$request->image1->hashName(),
"image_path2"=>$request->image2->hashName(),
"image_path3"=>$request->image3->hashName(),
"prix"=>$request->get('prix'),
"file_path" => $request->file->hashName(),
"nb_download"=>$request->get('nb_download')
]);
$request->image1->move(public_path('images'));
$request->image2->move(public_path('images'));
$request->image3->move(public_path('images'));
$templates->save();
return view('products.create');
}
【问题讨论】:
-
您对
hashName()(例如"image_path"=>$request->image1->hashName())的调用是在一个空对象上完成的。换句话说,其中一个$request字段在您的 templatesControllernew templates语句中返回 null。在你推送它之前它是否有效? -
谢谢康纳,是的,它成功了!而且我没有任何空对象。不知道是什么问题!
-
你肯定有一个空对象,否则你不会得到错误。 “在 null 上调用成员函数 hashName()” 表示您调用
hashName()的变量未设置为实例。例如,如果$request->image1为空,则不能调用hashName()。尝试记录$request的值以验证它是否设置为您认为的值。它可能缺少一个字段值。 -
谢谢康纳这是一个错字!输入类型名称是“image”而不是“image1”。
标签: file-upload hash upload laravel-8 image-upload