我有桌面用户:
在将所有输入添加到数据库时,它可以很好地工作。
当插入i时不会插入图像我只会插入firstName,lastName,login,password和image我想指定一个null。
但它不起作用它向我显示 toastr.error('','错误!'); ,知道我删除输入图像中所需的内容。
我尝试使用此代码:
控制器:
public function addUser(Request $request){
$user = new User();
$user->firstName = $request->firstName;
$user->lastName = $request->lastName;
$user->login = $request->login;
$user->password = bcrypt($request->password);
if(empty($request->image)){
$user->image = NULL;
} else{
$custom_file_name = $request->image->getClientOriginalName();
$path = $request->image->storeAs('avatars',$custom_file_name);
$user->image = $path;
}
$user->save();
return response()->json($user);
}
Ajax:
$(document).on('click', "#add", function() {
var firstName = $('#firstName').val();
var lastName = $('#lastName').val();
var login = $('#login').val();
var password = $('#password').val();
var image = $('#image').prop('files')[0];
var form_data = new FormData();
form_data.append('firstName', firstName);
form_data.append('lastName', lastName);
form_data.append('login', login);
form_data.append('password', password);
form_data.append('image', image);
$.ajax({
url: "{{action('UserController@addUser')}}",
method: 'POST',
data:form_data,
contentType: false,
processData: false,
success: function(data) {
toastr.success('', 'Success!');
},
error: function(){
toastr.error('', 'Error!');
}
});
查看:
<form enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<input type="text" id="lastName" autocomplete="off" class="form-control" />
</div>
<div class="form-group">
<input type="text" id="firstName" autocomplete="off" class="form-control" />
</div>
<div class="form-group">
<input type="text" id="login" autocomplete="off" class="form-control" />
</div>
<div class="form-group">
<input type="password" id="password" autocomplete="off" class="form-control" />
</div>
<div class="form-group">
<input type="file" id="image" name="image" autocomplete="off" class="form-control" />
</div>
</form>
<button type="submit" id="add" class="btn default">Add</button>
答案 0 :(得分:2)
可能需要将列设置为可空(在迁移文件中),以便在该列中保存空值。
例如:
$table->string('email')->nullable();
或在你的情况下:
$table->string('image')->nullable();
答案 1 :(得分:1)
试试此代码
if($request->hasFile('image')) {
$file = $request->file('image');
$name = $request['phone_number'].$request['phone_number'].'.'.$file->getClientOriginalExtension();
$image['filePath'] = $name;
$file->move('uploads', $name);
}