如何使用字符串类型参数生成路由

How to generate a route using a string type parameter

在我的控制器方法中,创建了一行

public function createImg(Request $request, $id)
{
    $url = url()->previous();
    $start = env('APP_URL');
    $path = explode($start , $url)[1];

some code

    return view('img', ['path'=>$path, 'param'=>$param]);
}

我需要生成一条路线

Route::get('/{path}/img/{id}', 'App\Http\Controllers\ImgController@createImg')

是否可以将字符串传递给路由?我该怎么做?

你已经这样做了。

您按正确的顺序向您的方法添加了另一个参数。

换句话说,如果您的路线是这样的:

'/{path}/img/{id}'

那么你在控制器中的函数应该是这样的:

public function createImg(Request $request, $path, $id)


另请注意,您不必像这样传递整个路径:

'App\Http\Controllers\ImgController@createImg'

只要通过就够了:'ImgController@createImg'.

你的意思是说,是否可以将字符串从路由传递到控制器?如果是这样,那么是的,这是完全有效的。

Route::get('/{path}/img/{id}', 'App\Http\Controllers\ImgController@createImg');

您只需将参数添加到控制器即可。

public function createImg(Request $request, $path, $id)