【问题标题】:Route pattern cannot reference variable more than once. ex. connection/{person}/{person} [duplicate]路由模式不能多次引用变量。前任。连接/{person}/{person} [重复]
【发布时间】:2015-06-01 19:02:29
【问题描述】:

如何引用 2 个具有相同模式的变量。

思路很简单,甲和乙之间有什么联系:

app/Http/Controllers/ConnectionController.php

class ConnectionController extends Controller {
  public function getDetail($personA, $personB){
    return $personA . $personB;
  }
}

app/Http/routes.php

Route::controller('connection', 'ConnectionController');

不足以提供一个像样的 URL,所以我想出了:

app/Http/routes.php

Route::pattern('person','{a-z}+-{0-9}+');
Route::get('connection/{person}/{person}', 'ConnectionController@getDetail');

但它抛出了一个:

LogicException in RouteCompiler.php line 102:
Route pattern "/connection/{person}/{person}" cannot reference variable name "person" more than once.

如何实现这一目标?快速修复是一种重复模式,不使用模型绑定,但感觉不对。

【问题讨论】:

  • connection/{personA}/{personB} 有什么问题?
  • 您不能在一条路线中多次使用相同的模式(名称)。所以你必须给他们不同的名字,并注册两次相同的模式。请参阅我以最不丑陋的方式链接的问题。
  • 太糟糕了,没有找到之前的问题,所以请原谅我发布重复。嗯,少一点优雅也可以。

标签: php laravel laravel-5


【解决方案1】:
Route::get('connection/{personA}/{personB}', 'ConnectionController@getDetail');

【讨论】:

  • 发布代码不是答案,但正如 lukasgeiter 所说,您的代码说明,如果没有具有不同名称的重复模式,这是不可能的。
猜你喜欢
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多