gpt4 book ai didi

php - 如何在软删除模型上使用资源 Controller 的 show 方法?

转载 作者:行者123 更新时间:2023-12-04 00:30:14 24 4
gpt4 key购买 nike

所以我有一个名为 ProjectController 的资源 Controller 我添加了软删除并将其用作存档。

Route::get('project/archive', 'ProjectController@trash')->name('project.archive');
Route::resource('project', 'ProjectController');

在这个文件中,我有一个项目列表。
public function trash()
{
$projects = Project::onlyTrashed()->get();
return view('projects.archive', compact('projects'));
}

现在我想使用 show方法来查看这些项目。

在我的 \App\Providers\RouteServiceProvider我补充说:
Route::bind('project', function ($value) {
return \App\Project::withTrashed()->find($value);
});

但是这样,我可以编辑项目。

我试图绑定(bind) project/show , project/{project}/show ,但这不起作用。

如何使用 show我的资源 Controller 在废弃项目上的方法?

我完整的 ProjectController 看起来像:

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProjectRequest;
use App\Project;

class ProjectController extends Controller
{
public function index()
{
$projects = Project::all();
return view('project.index', compact('projects'));
}

public function create()
{
return view('project.create');
}

public function store(ProjectRequest $request)
{
Project::create($request->all());
return redirect()->route('project.index');
}

public function show(Project $project)
{
return view('project.show', compact('project'));
}

public function edit(Project $project)
{
return view('project.edit', compact('project'));
}

public function update(ProjectRequest $request, Project $project)
{
$project->update($request->all());
return redirect()->route('project.index');
}

public function destroy(Project $project)
{
$project->delete();
return redirect()->route('project.archive');
}

public function trash()
{
$projects = Project::onlyTrashed()->get();
return view('project.archive', compact('projects'));
}
}

最佳答案

通过在 \App\Providers\RouteServiceProvider 中添加检查.

Route::bind('project', function ($value) {
if (Route::currentRouteName() === 'project.show') {
return \App\Project::withTrashed()->find($value);
}
return \App\Project::find($value);
});

希望这对其他人有帮助。

关于php - 如何在软删除模型上使用资源 Controller 的 show 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52533236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com