Laravel - Как показать детали мягкой удаленной модели - PullRequest
0 голосов
/ 19 марта 2020

Я использую мягкое удаление в моей модели quotation. Удаление quotation сохраняет строку в БД с полем * 1003. *

Я обновил свой метод индекса, чтобы включить мягко удаленные модели:

    public function index()
    {
        $quotations = Quotation::withTrashed()->orderBy("id", "asc")->paginate(100);

        return view('quotations.index', compact('quotations'));
    }

Но мой метод показа не работает, я получаю 404 Model Not Found ошибка:

    public function show(Quotation $quotation)
    {
        $quotation = Quotation::withTrashed()->find($quotation->id);
        return view('quotations.show', compact('quotation', 'activities'));
    }

Ответы [ 3 ]

1 голос
/ 19 марта 2020

Вы используете привязка к модели маршрута , он автоматически найдет $id из модели Quotation без withTrashed() и введет переменную $quotation. поэтому соответствующий экземпляр модели $quotation не найден в базе данных, автоматически генерируется HTTP-ответ 404.:

$quotation = Quotation::find($id);

Решение 1:

Таким образом, вы можете попробовать использовать $id напрямую

    public function show($id)
    {
        $quotation = Quotation::withTrashed()->find($id);
        return view('quotations.show', compact('quotation', 'activities'));
    }

И измените свой маршрут с {quotation} на {id}.

Решение 2:

Настройка разрешения Logi c:

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    parent::boot();

    Route::bind('quotation', function ($value) {
        return App\Quotation::withTrashed()->where('id', $value)->first() ?? abort(404);
    });
}
0 голосов
/ 19 марта 2020

Попробуйте использовать withTrashed()

public function show($id)
{
    $quotation = Quotation::withTrashed()->find($id);
    return view('quotations.show', compact('quotation', 'activities'));
}
0 голосов
/ 19 марта 2020

Я думаю, вы получите идентификатор с помощью следующего:

public function show() {
    $quotation = Quotation::withTrashed()->where('id',2)->get();
    return $quotation;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...