0

我已经为我的 url 设置了网络路由,以按照 localhost/testapp/public/{user}/hello 显示

使用此当前设置

Route::prefix('{user}')->middleware('user')->group(function () {
 Route::prefix('welcome')->group(function () {
  Route::view('/', 'layout.index')->name('index');
  Route::view('thank-you', 'layout.thank-you')->name('thankyou');
 });
 Route::get('/', 'HomeController@redirect');
});

Route::view('/', 'layout.index')->name('index');这条线按我想要的方式工作得很好,但是我无法HomeController@redirect按照我想要的方式工作。

这个想法是让用户在localhost/testapp/public/{user}输入时被重定向,它将用户重定向到页面localhost/testapp/public/{user}/hello

这就是 HomeController 的样子

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
 public function redirect(Request $request)
 {
  return redirect(['user' => $request, config('settings.default_user')].'/welcome');
 }
}

因此,如果以某种方式未收到动态参数,我会坚持使用默认用户“admin”,该用户存储在 config 文件夹中的 settings.php 中。

4

1 回答 1

0

在路由文件中使用可选参数{user},否则如果没有提供,它将显示 404

Route::prefix('/{user?}')

然后有了这个config/settings.php

<?php
return ['default_user' => 456];

而这在HomeController

public function redirect(Request $request)
{
    if (empty($request->user)) {
        return redirect(config('settings.default_user') . '/welcome');
    } else {
        return redirect($request->user . '/welcome');
    }
}

现在,当我在浏览器中尝试时

  • /123将我重定向到/123/welcome.
  • /将我重定向到456/welcome.
于 2019-08-21T16:45:51.033 回答