【发布时间】:2021-11-08 19:09:11
【问题描述】:
我正在尝试通过表单将一些文件上传到我的数据库以及我的项目的存储中
我在主页上做了以下代码:
<x-layout>
@if (session('message'))
<div class="alert alert-success">{{session('message')}}</div>
@endif
<div class="container vh-100">
<div class="row h-100 w-100 align-items-center">
<div class="offset-3 col-6">
<form method="POST" action="{{route('transfer.submit')}}" class="card" enctype="multipart/form-data">
@csrf
<div class="border w-100" id="fileWrapper">
<div class="mb-3 w-100 h-100">
<input type="file" class="form-control w-100 h-100 fileInput" id="fileupload" name="files[]" multiple >
</div>
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Invia file a </label>
<input type="email" class="form-control" id="exampleInputPassword1" name="recipient_mail">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">La tua mail</label>
<input type="email" class="form-control" id="exampleInputPassword1" name="sender_mail">
</div>
<div class="mb-3">
<input type="text" class="form-control" id="title" name="title">
</div>
<div class="mb-3">
<textarea name="message" cols="50" rows="10"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</x-layout>
然后我在我的模型中做了以下操作:
protected $fillable = [
'recipient_mail',
'sender_mail',
'title',
'message',
'files[]'
];
以及我的控制器中的以下内容:
public function transferSubmit(TransferRequest $request){
$transfer = Transfer::create([
'sender_mail'=>$request->input('sender_mail'),
'recipient_mail'=>$request->input('recipient_mail'),
'title'=>$request->input('title'),
'message'=>$request->input('message'),
'files'=>$request->file('files[]')->store('public/files'),
]);
return redirect(route('home'))->with('message', 'File inviato con successo');
}
我还创建了POST 路由并完成了迁移,但是当我尝试提交表单时出现以下错误:
在 null 上调用成员函数 store() 时出错
在此之后,我尝试使用 dd($request) ro 检查我实际传递给 Trasnfer 类的数据,我发现它正确接收了包括文件数组在内的所有数据。
有没有人可以帮助我理解为什么会出现这个错误?
非常感谢
【问题讨论】: