Итак, у меня есть контроллер ресурсов с именем ProjectController
, и я добавил soft delete и использую его как архив.
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'));
}
}