php - 如何在软删除模型上使用资源控制器的 show 方法?
问题描述
所以我有一个名为的资源控制器ProjectController
,我添加了软删除并将其用作存档。
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);
});
但是这样,我可以编辑项目。
我试图绑定project/show
, project/{project}/show
,但这不起作用。
如何show
在废弃项目上使用我的资源控制器的方法?
我完整的 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);
});
希望这对其他人有帮助。
推荐阅读
- ios - 从嵌套数据数组将数据填充到 UITableViewCell 内的 UITableView
- slurm - SLURM sacct 显示“批处理”和“外部”作业名称
- php - SSL 验证问题
- json - 不能 Json.Unmarshal 到结构
- c# - 无法使用 hololens 录制动画
- javascript - 意外使用“自我”无限制全局变量
- excel - 功能适用于前 2 个任务,但在第 3 个任务中不执行任何操作
- sql - 使用 Group by 子句后获取重复值
- css - Google Chrome 和 Firefox 不显示来自子域的背景图片
- java - [myserver.mydomain.com] 不受信任的 Java 信任库根证书