【发布时间】:2021-08-14 14:36:29
【问题描述】:
我正在尝试将数据从表单模式保存到数据库。
所以,我正在使用以下代码:
控制器:
public function store(Request $request)
{
if ($files = $request->file('casting_photo'))
{
$destinationPath = public_path('public/castingimages'); // upload path
$profileImage = date('YmdHis') . "." . $files->getClientOriginalExtension();
$files->move($destinationPath, $profileImage);
$cast = new Casting;
$cast -> casting_name= $request->input('casting_name');
$cast -> casting_cin= $request->input('casting_cin');
$cast -> casting_email= $request->input('casting_email');
$cast -> casting_phone= $request->input('casting_phone');
$cast -> casting_gender= $request->input('casting_gender');
$cast -> casting_address= $request->input('casting_address');
$cast -> casting_city= $request->input('casting_city');
$cast-> casting_photo=$profileImage;
$cast->save();
}
}
查看:
<x-app-layout>
<div class="container-fluid">
<div class="row">
<div class="col app-col">
<div class="mb-2">
<h1>Castings</h1>
<div class="top-right-button-container">
<button type="button" data-target="#castingmodel" data-toggle="modal" class="btn btn-outline-primary btn-lg top-right-button mr-1">Add New
</button>
<div class="col-xl-6">
<div id="result"></div>
</div>
</div>
</div>
<div class="separator mb-5"></div>
</div>
</div>
</div>
<div class="modal fade" id="castingmodel" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalContentLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<form method="post" class="needs-validation tooltip-label-right" id="formcast" novalidate enctype="multipart/form-data">
{{ csrf_field() }}
<div class="modal-body">
<input type="hidden" id="id_hidden" name="id" />
<div class="form-group position-relative error-l-50">
<label>Name</label>
<input type="text" class="form-control" name ="casting_name" id="casting_name" >
<div class="invalid-tooltip">Name is required!</div>
</div>
<div class="form-group position-relative error-l-50">
<label>CIN</label>
<input type="text" class="form-control" name="casting_cin" id="casting_cin" required>
<div class="invalid-tooltip">CIN is required!</div>
</div>
<div class="form-group position-relative error-l-50">
<label>EMAIL</label>
<input type="text" class="form-control" rows="2" name="casting_email" required>
<div class="invalid-tooltip">EMAIL is required!</div>
</div>
<div class="form-group position-relative error-l-50">
<label>PHONE</label>
<input type="number" class="form-control" rows="2" name="casting_phone" required>
<div class="invalid-tooltip">PHONE is required!</div>
</div>
<div class="form-group position-relative">
<label>Radio</label>
<div>
<div class="custom-control custom-radio">
<input type="radio" id="jQueryCustomRadio1" name="casting_gender" class="custom-control-input" required value="homme">
<label class="custom-control-label" for="jQueryCustomRadio1">Homme</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" id="jQueryCustomRadio2" name="casting_gender" class="custom-control-input" required value="femme">
<label class="custom-control-label" for="jQueryCustomRadio2" >Femme</label>
</div>
</div>
</div>
<div class="form-group position-relative error-l-50">
<label>ADDRESS</label>
<input type="text" class="form-control" rows="2" name="casting_address" required>
<div class="invalid-tooltip">ADDRESS is required!</div>
</div>
<div class="form-group position-relative error-l-50">
<label>CITY</label>
<input type="text" class="form-control" rows="2" name="casting_city" required>
<div class="invalid-tooltip">CITY is required!</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">Upload</span>
</div>
<div class="custom-file">
<input type="file" name="casting_photo" class="custom-file-input" id="inputGroupFile01">
<label class="custom-file-label" for="inputGroupFile01">Choose file</label>
</div>
</div>
<button type="submit" id="createBtn" class="btn btn-primary">Save</button>
<div class="result"></div>
</div>
</form>
</div>
</div>
</div>
<script
src="https://code.jquery.com/jquery-3.6.0.js"
integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk="
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#formcast').on('submit', function(e){
e.preventDefault();
$.ajax({
type: "POST",
url:"castings",
data : $('#formcast').serialize(),
success: function(response){
console.log(response)
$('#castingmodel').modal('hide')
alert("Data saved");
},
error: function(error){
console.log(error)
alert("Data not saved");
}
});
});
});
</script>
</x-app-layout>
它没有显示任何错误并且数据没有插入到数据库中。
我检查了文件.env数据库的参数是否正确。
不知道是不是因为我在表单中上传的输入文件
【问题讨论】:
-
它会影响你的功能吗?
-
通过在函数中返回一些东西来检查它并在你的响应中控制它
-
也在函数中返回您的请求并确保它有您的照片
-
我检查了,它在函数中返回响应
-
里面有你的照片吗?我认为您没有通过 ajax 请求发送您的照片,因此根据您函数中的代码,您的数据将不会被保存