路由控制器2025年3月17日 | 阅读 3 分钟 路由控制器允许您使用用于处理请求的方法创建控制器类。 现在,我们将通过一个例子来理解路由控制器。 步骤 1: 首先,我们需要创建一个控制器。 我们已经在上一节中创建了名为“PostController”的控制器。 步骤 2: 打开 web.php 文件并编写以下代码 在上面的代码中,'/post' 是我们想要访问的 URL,而 PostController 是控制器的名称。 'index' 是 PostController.php 文件中可用的方法的名称,而 @index 表示当我们访问“/post” url 时应调用 index() 方法。 步骤 3: 添加如下所示的代码 步骤 4: 在浏览器中输入 URL,即 localhost/laravelproject/public/host,然后输出将如下所示 输出 ![]() 到目前为止,我们已经观察到如何访问控制器。 现在,我们将了解如何将数据传递给控制器类。 将数据传递给控制器 让我们通过一个示例来理解我们如何将数据传递给控制器 步骤 1: 打开 web.php 文件并添加以下代码 Route::get('/post/{id}','PostController@index'); 上面的代码包含“/post” url 中的“id”参数。 步骤 2: 编辑 PostController.php 文件。 在上面的例子中,我们已经更新了 index() 方法。 我们在 index() 方法中传递了“id”参数。 步骤 3: 在 Web 浏览器中输入 URL“localhost/laravelproject/post/100”,然后输出将如下所示 ![]() 控制器和命名空间当我们通过 Route::get() 方法指定控制器类时,我们不需要指定完整的控制器命名空间。由于 RouteServiceProvider 加载了包含命名空间的所有路由文件,我们只需要指定命名空间 App/Http/Controllers 部分之后的类名。 如果完整的控制器类是 App/Http/Controllers/Post/PostController,那么我们可以如下注册控制器的路由 Route::get('\post','Post\PostController@index'); 单操作控制器如果我们想在控制器中使用单一方法,那么我们可以在控制器上使用 single __invoke() 方法。 当我们使用命令 php artisan:make controller PostController 创建控制器时,PostController 文件的结构如下 现在,我们在 PostController 类中添加 __invoke() 函数的代码 最后,我们在 web.php 文件中添加代码,该代码负责处理操作。 上面的代码调用了 PostController 类的 __invoke() 方法。 这说明我们不需要编写 @invoke 方法来访问单操作控制器。 输出 当我们输入 URL 'localhost/laravelproject/public/post/67' 时,输出将是 ![]() 如果未指定任何操作,即我们忘记编写 __invoke() 方法,则会抛出 UnexpectedValueExpression。 假设我们从 PostController 类中删除了 __invoke() 方法,则输出将是 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。