#php #laravel
Вопрос:
Я только что получил эту ошибку при всех попытках обновления данных моей таблицы.
Исключение ошибки: Создание объекта по умолчанию из пустого значения
AdminController.php
public function update(Request $r, $post_id) {
$post = Post::find($post_id);
$post->post_title = $r->post_title;
$post->post_image = $r->post_image;
$post->post_details = $r->post_details;
$post->post_rating = $r->post_rating;
$post->id = $r->id;
$post->save();
return back();
}
Мой маршрут Ресурсов
Route::resource('post', AdminController::class);
Напильник для лезвий
<div class="edit-post-content">
<form action="{{ route('post.update',$list->post_id) }}" method="POST">
@csrf
@method('PUT')
<input type="hidden" name="id" value="{{$list->id}}">
<input type="hidden" name="post_rating" value="{{$list->post_rating}}">
<div class="mb-3">
Edit Title: <input class="form-control" name="post_title" type="text" id="exampleFormControlInput1" value="{{$list->post_title}}" aria-label="default input example">
</div>
<div class="mb-3">
Edit Description:
<textarea class="form-control" id="exampleFormControlTextarea1" name="post_details" rows="3">
{{ $list->post_details }}
</textarea>
</div>
<div>
<img src="{{asset('images/'.trim($list->post_image))}}" alt="" width="120px;">
Edit Photos:
<input id="formFileMultiple" class="form-control form-control-lg" name="post_image" type="file" value="{{ $list->post_image }}" multiple>
</div>
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
Кто-нибудь может мне помочь, пожалуйста?
Комментарии:
1. Добро пожаловать в SO …
find
может вернутьсяnull
, вам нужно проверить это, прежде чем использовать то, что возвращается изfind
в качестве объекта
Ответ №1:
Есть вероятность, что model
этого не существует. Вы можете добавить проверку на это в свой контроллер следующим образом:
public function update(Request $r, $post_id) {
$post = Post::find($post_id);
if (!$post) {
// You can add code to handle the case when the model isn't found like displaying an error message
return back();
}
$post->post_title = $r->post_title;
$post->post_image = $r->post_image;
$post->post_details = $r->post_details;
$post->post_rating = $r->post_rating;
$post->id = $r->id;
$post->save();
return back();
}
Комментарии:
1. да, это так……. Модель не найдена в сценарии обновления. Но я удалил ту же таблицу по этой модели. Как я могу это решить?