我有几个视图用编辑按钮显示细节。当用户单击编辑按钮时,他们会转到该项目的编辑视图。从编辑视图我想链接回原始视图。人们使用的最佳做法是什么,以便编辑视图知道用户返回的位置?
我正在使用PHP和Laravel框架。
示例:
用户在/ invoice / 1 / detail,点击编辑到/ contact / 9 /编辑,点击保存或取消,返回/ invoice / 1 / detail
或者
用户在/ task / 2 / detail上,点击编辑到/ contact / 9 /编辑,点击保存或取消,返回/ task / 2 / detail
或者
用户在/ report / 3 / detail,点击编辑到/ contact / 9 /编辑,点击保存或取消,返回/ report / 3 / detail
答案 0 :(得分:0)
如果你愿意冒险,你肯定会受益于资源控制器(http://laravel.com/docs/4.2/controllers#restful-resource-controllers)。采用这些后,您的详细视图将全部显示
public function show($id) {...}
您的编辑视图看起来都像
public function edit($id) {...}
并且路由会或多或少地处理自己。
假设您已采用此约定,您可以在基本控制器中放置一些通用逻辑,并让各个控制器扩展它们。
基本控制器可能有这样的东西:
<?php
use Illuminate\Routing\Controller as Controller;
class BaseController extends Controller
{
/**
* Returns the routable action string for editing this resource
* @return string
*/
final protected function getEditAction()
{
return __CLASS__ . '@edit';
}
/**
* Returns the routable action string for showing this resource
* @return string
*/
final protected function getShowAction()
{
return __CLASS__ . '@show';
}
}
然后,从扩展基本控制器的控制器,您可以执行以下操作:
// Redirect to the detail page upon save
return Redirect::action($this->getShowAction());
// Pass a link to the detail page into a view
return View::make('foo.bar', ['back_url' => URL::action($this->getShowAction())]);
等等。