在laravel修改回路线

时间:2018-01-05 15:50:14

标签: php laravel laravel-5 routing

在我的场景中,我来自以下路线:

false

我正在访问路线:

model/{model}/edit

我制作模型的副本并存储

model/{model}/duplicate
之后,我希望通过这样做的方式返回编辑新模型的路线:

$duplicate_model = $model->replicate();
$duplicate_model->save();

希望它将模型ID替换为重复模型的模型ID,但它不会。

我无法访问特定路由,因为可能会访问重复路由的不同情况。

2 个答案:

答案 0 :(得分:4)

其中一个解决方案就是解决所有可能的反向路由命名,从而像这样从后面的URL解析路由名称:

$back_route_name = app('router')->getRoutes()->match(app('request')->create(redirect()->back()->getTargetUrl()))->getName();

然后按名称重定向到路线:

return redirect()->route($back_route_name, ['template' => $duplicate_template]);

答案 1 :(得分:0)

您可以定义"路径()"在你的模型中。 在这种情况下 /

  

/模型/ {模型} /编辑

在模型中定义一个函数

  

public function path(){   返回' / model /' 。 $ this-> id。 ' /编辑&#39 ;;   }

你的ThatModelController.php

中的

简单

  

返回重定向($ dumplicate_model-> path());

它应该有用,Jeffery Way使用这个约定。

注意:如果您正在使用路径模型绑定并使用slug   path()函数应该返回$ this-> slug而不是$ this-> id