创建动态 URL 并在 Laravel 中重定向到它
Create a Dynamic URL and Redirect to it in Laravel
所以基本上这就是我需要的。我有一个这样的路由器定义。
Route::get('view/{postId}', 'PostController@view');
如果我们请求的 url 是 www.domain.com/view/4
,上面的路由器定义将被触发。但我想要的是我想让这个 url 像 www.domain.com/[category-of-post]/[titile-of-post]
一样出现(例如:www.domain.com/music/easy-chords-in-guitar
)。
在 PostController
中,我将使用传递的 id 获取 post,从而可以生成我需要的 url。这是问题的开始。如您所见,我需要重定向到动态 url,每个 post 看起来都不同。 我想重定向到这个动态 url,但是这些 url 没有在 routes.php
.
中定义
这在 Laravel 中可行吗?
简而言之,我需要的是,我想在调用 运行 之前用动态生成的 url 值和相应的控制器操作更新 Illuminate\Routing\RouteCollection::$route
数组 Redirect::to('someurl')
如果您需要进一步说明,我一定会做到。请给我你的建议。
它比你想象的要简单。
Route::get('{category}/{title}',['uses' => 'FooController@bar']);
这应该是您的路由列表中定义的最后一条路由。任何其他路线都应该比这条路线更高。
这将匹配 www.domain.com/music/easy-chords-in-guitar
休息路线随心所欲。
例如
Route::get('/',['uses' => 'FooController@home']);
Route::get('about',['uses' => 'FooController@about']);
Route::get('contact',['uses' => 'FooController@contact']);
Route::get('{category}/{title}',['uses' => 'FooController@bar']);
路线:
Route::get('action/{slug}', 'HomeController@actionredeemvoucher')->name('home.actionredeemvoucher');
控制器中的函数:
public function actionredeemvoucher($slug)
{
print_r($slug);
}
所以基本上这就是我需要的。我有一个这样的路由器定义。
Route::get('view/{postId}', 'PostController@view');
如果我们请求的 url 是 www.domain.com/view/4
,上面的路由器定义将被触发。但我想要的是我想让这个 url 像 www.domain.com/[category-of-post]/[titile-of-post]
一样出现(例如:www.domain.com/music/easy-chords-in-guitar
)。
在 PostController
中,我将使用传递的 id 获取 post,从而可以生成我需要的 url。这是问题的开始。如您所见,我需要重定向到动态 url,每个 post 看起来都不同。 我想重定向到这个动态 url,但是这些 url 没有在 routes.php
.
这在 Laravel 中可行吗?
简而言之,我需要的是,我想在调用 运行 之前用动态生成的 url 值和相应的控制器操作更新 Illuminate\Routing\RouteCollection::$route
数组 Redirect::to('someurl')
如果您需要进一步说明,我一定会做到。请给我你的建议。
它比你想象的要简单。
Route::get('{category}/{title}',['uses' => 'FooController@bar']);
这应该是您的路由列表中定义的最后一条路由。任何其他路线都应该比这条路线更高。
这将匹配 www.domain.com/music/easy-chords-in-guitar
休息路线随心所欲。
例如
Route::get('/',['uses' => 'FooController@home']);
Route::get('about',['uses' => 'FooController@about']);
Route::get('contact',['uses' => 'FooController@contact']);
Route::get('{category}/{title}',['uses' => 'FooController@bar']);
路线:
Route::get('action/{slug}', 'HomeController@actionredeemvoucher')->name('home.actionredeemvoucher');
控制器中的函数:
public function actionredeemvoucher($slug)
{
print_r($slug);
}