[英]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.