Привет, я пытаюсь создать сообщение, используя данные формы, потому что у меня есть входной файл для загрузки изображений. Я действительно пытаюсь заставить загруженный файл работать. Я получаю ошибку 500 при попытке создать сообщение с сообщением
SQLSTATE [HY000]: Общая ошибка: 1364 Поле 'title' не имеет значения по умолчанию (SQL: вставить в значения
posts
('updated_at', 'created_at') (2018-01-30 12:31:18, 2018- 01-30 12:31:18).
Я не уверен, что подразумевается под значением по умолчанию. Я проверил свой $fillables
, и название там определенно. Когда я запускаю следующий код в своем контроллере прямо вверху, он проходит:
$request->all();
return response()->json('passed');
Но когда у меня в контроллере есть следующее, он выдает ошибку:
public function create(Request $request)
{
Post::create($request->all());
$response = [
'response' => 'Post Created Successfully',
'error' => 'Something went wrong'
];
return response()->json($response);
}
Вот мой HTML:
<div class="container">
<div class="row">
<h1>Create your post</h1>
<div class="form-group">
<label for="title">Title</label>
<input type="text" name="title" id="title" class="form-control">
</div>
<div class="form-group">
<label for="post">Post</label>
<textarea name="post" rows="8" cols="80" id="post" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="image">Add image</label>
<input type="file" name="image" id="image" class="form-control">
</div>
<input type="submit" name="submit" value="Submit Post" id="submit" class="btn btn-primary">
</div>
</div>
AJAX:
<script>
$(document).ready(function() {
$("#submit").on("click", function(e) {
e.preventDefault();
var formData = new FormData();
var fileData = $('#image').prop('files')[0];
var title = $('#title').val();
var post = $('#post').val();
formData.append('fileData', fileData);
formData.append('title', title);
formData.append('post', post);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr("content")
}
});
$.ajax({
url:'/post/create/create',
type: "POST",
data: {
formData: formData
},
processData: false,
contentType: false,
dataType: 'json',
success:function(response){
toastr.success(response.response);
},
error: function(error){
toastr.error(error.error)
}
});
});
});
</script>
Вот моя модель Post с заполняемыми объектами:
protected $fillable = ['title', 'post', 'user_id', 'uploadImage'];
dd($request->all());
- person Alexey Mezenin   schedule 30.01.2018data: formData
- person linktoahref   schedule 30.01.2018$table->string('title')->default('Untitled')
- person brombeer   schedule 30.01.2018