Исключение ошибки: Создание объекта по умолчанию из пустого значения — Laravel

#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. да, это так……. Модель не найдена в сценарии обновления. Но я удалил ту же таблицу по этой модели. Как я могу это решить?