laravel - 在 null 上调用成员函数 store() 我检查了名称
问题描述
尝试上传文件时出现此错误:Call to a member function store() on null
我阅读了很多次文档,并且检查了 SO,但我无法理解,您能帮帮我吗?
有我的引导程序:
<label for="Ticketimg" class="col-md-4 col-form-label text-md-center">{{ __('Ticketimg') }}</label>
<div class="col-md-6">
<input id="Ticketimg" type="file" class="custom-file-label @error('Ticketimg') is-invalid @enderror" name="Ticketimg" enctype="multipart/form-data" required autocomplete="Ticketimg" autofocus> @error('Ticketimg')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span> @enderror
还有控制器:
public function DeclareFrais($idMission, Request $request)
{
// $image = $request->input('Ticketimg');
$imageCarbu = $request->input('ticketcarbu');
$imageManger = $request->input('ticketmanger');
$prixhotel = $request->input('PrixHotel');
$prixcarbu = $request->input('PrixCarbu');
$prixManger = $request->input('PrixManger');
date_default_timezone_set('Europe/Paris');
$pdate = date('Y-m-d H:i');
$path = $request->file('Ticketimg')->store('public');
// Storage::disk('local')->put('nique', $fichierFinal);
// $test->save();
DB::insert('exec Dfrais ?, ?, ?, ?, ?, ?, ?, ?', array($idMission, $prixhotel, $prixcarbu, $prixManger, $pdate, $path, $imageCarbu, $imageManger));
return redirect()->action('HomeController@show')->with('succes', 'Frais déclarés');
}
我认为它有些愚蠢,但我找不到它。
注意:我的网址 $imageCarbu 和 $imageManger 很好地存储在我的数据库中,html 看起来也不错。
感谢帮助:)
解决方案
发生这种情况的主要原因(很难说,因为您没有添加表单标签)是因为,正如其他人所说,您可能没有enctype="multipart/form-data"
作为FORM
标签的一部分。
为什么这很重要?编码类型 (enctype) 告诉表单的接收者(服务器端)传入的数据(只是 base64 编码的文本)在表单数据(其他提交的输入)和文件数据(内容)之间具有伴随 MIME 类型的分隔边界文件)。没有它,所有数据都会混合在一起。
在您的情况下,它是作为常规数据提交的,因此 Laravel 将表单字段Ticketimg视为常规的无意义字符串。这意味着虽然 Laravel 说它不为 null(它可以看到字符串),但它不会将其视为请求中的 File 对象。从那里,它试图在字符串上调用存储,而不是文件。
希望这能解释它。
推荐阅读
- asp.net - 如何添加属性以限制 ASP.NET 上文本字段的字母?
- mysql - MySQL 5.7 简单计数查询有时快有时很慢
- aws-lambda - AWS Lambda 和 AWS Athena 有什么区别?
- c# - 如何查找特定类别 id c# 的分层树最后一个节点
- liferay - 为什么选择 ServletResponseUtil。sendFile 将文件作为页面内容发送?
- amazon-web-services - 如何排查和解决 lambda 函数问题?
- java - 无法在 NetBeans 6.5.1 IDE 中添加新服务器
- python - 如何在 Behave 中设置 Allure Html 报告的目标文件夹
- c# - EF Core 创建多个外键列
- react-native - 主播播客公共 api