Php Laravel:引导模型将图像作为字符串而不是对象返回
问题:为什么图像以字符串形式返回,它应该是object。 我有以下Php Laravel:引导模型将图像作为字符串而不是对象返回,php,jquery,ajax,twitter-bootstrap,laravel,Php,Jquery,Ajax,Twitter Bootstrap,Laravel,问题:为什么图像以字符串形式返回,它应该是object。 我有以下用于触发模型: 模型本身: <div class="modal fade" id="add-project" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content">
用于触发模型:
模型本身:
<div class="modal fade" id="add-project" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">Add Portfolio</h4>
</div>
<div class="modal-body">
{!! Form::open(['file' => true]) !!}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label for="Projecttitle">Project Title</label>
<input type="text" name="projectTitle" class="form-control" id="projectTitle" placeholder="Project title here...">
<small id="title-message" style="color: red;"></small>
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea style="width:100%; height:350px;" class="editor" id="project_description" name="project_description"></textarea>
<small id="description-message" style="color: red;"></small>
</div>
<div class="form-group">
<label for="uploadimage">Upload Image</label>
<div class="input-group">
<label class="input-group-btn">
<span class="btn btn-add">Choose File
<input type="file" name="project_image" id="project_image">
<small id="projectImage" style="color: red;"></small>
</span>
</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default btn-close" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary btn-save" id="addProjectToPortfolio">Add Portfolio</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
请注意,project\u image
不是一个对象
我的Ajax请求是:
$('#addProjectToPortfolio').click(function() {
$.ajax({
url: '/freelancer/add-to-portfolio',
type: "post",
data: {'projectTitle':$('#projectTitle').val(), 'project_description': $('#project_description').val(),'project_image': $('#project_image').val(),'_token': $('input[name=_token]').val()},
success: function(data) {
console.log('asd');
//window.location = '/';
if(data && data !="") {
console.log(data);
$('#title-message').text(data.projectTitle);
$('#description-message').text(data.project_description);
$('#projectImage').text(data.project_image);
}
},
error: function(data) {
// Error...
var errors = $.parseJSON(data.responseText);
console.log(errors);
$.each(errors, function(index, value) {
$.gritter.add({
title: 'Error',
text: value
});
});
}
});
});
问题:为什么图像以字符串形式返回,它应该是object。这里的问题可能是您只发送图像名称,即图像字段的值 相反,您需要提交整个表单 您需要将ajax数据作为 数据:新表单数据($(“#上传表单”)[0]) 您可以通过以下方式访问控制器中的文件: 输入::文件('image_字段'); 或
$request->file('image_字段') 你能再解释一下吗?我没抓到你('project_image':$('#project_image').val()…它只会从project_image输入字段发送文件名…。相反,您需要将图像(即文件信息)传递给服务器,以便提交整个表单…这可以通过以下两种方式完成:$(“#表单_id”).serialize();或者通过上面提到的方法,请注意,已经按照您的方式完成了,仍然是同一个问题!@VaibhavMalve是正确的。您的代码没有进行文件上载,只是发布了一些文本字符串。这里有很多。
#upload_form
无法按字面意思工作,因为您没有表单ID。如果页面上只有1个,请尝试$(“form”)
。
$('#addProjectToPortfolio').click(function() {
$.ajax({
url: '/freelancer/add-to-portfolio',
type: "post",
data: {'projectTitle':$('#projectTitle').val(), 'project_description': $('#project_description').val(),'project_image': $('#project_image').val(),'_token': $('input[name=_token]').val()},
success: function(data) {
console.log('asd');
//window.location = '/';
if(data && data !="") {
console.log(data);
$('#title-message').text(data.projectTitle);
$('#description-message').text(data.project_description);
$('#projectImage').text(data.project_image);
}
},
error: function(data) {
// Error...
var errors = $.parseJSON(data.responseText);
console.log(errors);
$.each(errors, function(index, value) {
$.gritter.add({
title: 'Error',
text: value
});
});
}
});
});