[英]Redirect to custom tool url in a laravel nova application
我在检查中间件中的条件后尝试重定向用户,我尝试使用
return redirect('/admin/paddle-subscription');
但它不起作用,它只是重定向页面并在浏览器 url 中正确显示,但在屏幕上显示 404 错误,看起来 nova 使用 vue.js 它正在创建某种错误。
我一直在阅读 laracast https://laracasts.com/discuss/channels/nova/nova-resource-route-redirect中的一些帖子,我更清楚它需要一种特殊的重定向方式。
我努力了
return redirect()->action('\Laravel\Nova\Http\Controllers\RouterController@show', ['resource' => '/admin/paddle-subscription']);
它不起作用,我应该如何正确重定向?
谢谢
尝试这个:
添加你的新星动作
public function handleRequest(\Laravel\Nova\Http\Requests\ActionRequest $request)
{
parent::handleRequest($request);
return Action::redirect('/admin/paddle-subscription');
}
您可以通过首先在后端创建路由来做到这一点,以便 Laravel 知道该页面存在。 使用 Nova 的RouterController@show
操作,就像在您的 Laracast 示例中一样,并确保将所有 Nova 中间件应用到它。
在app/Providers/NovaServiceProvider.php
中为您的routes()
方法添加自定义路由:
protected function routes()
{
Nova::routes()
->withAuthenticationRoutes()
->withPasswordResetRoutes()
->register();
Route::domain(config('nova.domain', null))
->middleware(['web'])
->as('nova.')
->prefix(Nova::path())
->group(function () {
Route::get('/admin/paddle-subscription', [\Laravel\Nova\Http\Controllers\RouterController::class, 'show'])
->middleware(config('nova.middleware', []));
});
}
在您的中间件中,您现在可以重定向到该路由并且页面将正确呈现:
public function handle(Request $request, Closure $next)
{
if ($foo === $bar) {
return new \Illuminate\Http\RedirectResponse('/admin/paddle-subscription');
}
return $next($request);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.