控制器动作2025年3月17日 | 阅读 3 分钟 动作定义在控制器文件中。需要在应用程序中通过 URL 执行请求时调用它们。 创建动作通过定义一个以单词 **action** 开头的公共方法来创建动作。 示例 **步骤 1** 我们将在 **SampleController.php** 文件中创建一个名为 **index2** 的动作。 **步骤 2** 在浏览器上运行它。 https:///action/frontend/web/index.php?r=sample/index2 ![]() 动作 ID创建动作是为了执行特定的请求,因此通常将其命名为动词,如 create、view、update、delete 等。 动作 ID 只能包含以下字母
可以通过两种方式创建动作
内联动作内联动作是控制器类中的一个方法。当它们不需要多次使用并且易于创建时,这些是最常用的动作。 内联动作 ID 名称根据以下几点定义
例如:
独立动作独立动作扩展了 **yii\base\Action** 或其子类。当需要在不同的控制器中使用或作为扩展重新分发时,主要创建这些动作。 可以将它们定义为单独的类,然后将它们连接到您的控制器。 这样它们就可以重用。 这些动作必须实现一个名为 **run()** 的方法,并扩展到 **yii\base\Action** 或一个子类。 示例 我们将演示一个简单的独立动作的使用。 **步骤 1** 在 Yii2 文件夹的前端目录中创建一个名为 **standing** 的文件夹。 **步骤 2** 现在在上面创建的文件夹中创建一个 **MultiAction.php** 文件。 查看上面的代码,我们创建了一个名为 **MultiAction** 的独立动作,它扩展到 Action 类。 我们已经实现了 run() 方法。 **步骤 3** 在上面创建的 **SampleController.php** 文件中添加一些额外的代码。 查看上面的代码,actions() 方法返回在 standing 文件夹中创建的独立动作 **multi** 动作。 **步骤 4** 使用以下 URL 在浏览器上运行它, https:///action/frontend/web/index.php?r=sample/multi ![]() 动作返回值动作的返回值代表相应动作的结果。 以下示例显示了一个动作通过返回一个响应对象重定向到一个新的 URL。 **redirect()** 方法总是返回一个响应对象。 **步骤 1** 将以下代码添加到 **SampleController.php** 文件中。 **步骤 2** 使用以下 URL 在浏览器上运行它, https:///action/frontend/web/index.php?r=sample/mysite 上面的 URL 将导致 javatpoint.com 网站显示在您面前。 动作参数您还可以向动作方法添加参数。 它们的值将使用参数名称作为键从 $_GET 方法中检索。 **步骤 1** 将以下代码添加到 **SampleController.php** 文件中。 **步骤 2** 使用以下 URL 在浏览器上运行它, https:///action/frontend/web/index.php?r=sample/para&a=Welcome to&b=our site ![]() 在上面的 URL 中,如果您不为 **a** 和 **b** 变量提供任何值,将抛出异常错误。 默认动作每个控制器文件中总是指定一个默认动作。 默认情况下,它设置为 **index**。 当在路由中,URL 仅包含控制器 ID 时,它会转到默认动作,即 index。 但是,可以通过覆盖来更改此默认值。 namespace app\controllers; use yii\web\Controller; 下一个主题YII 模块 |
我们请求您订阅我们的新闻通讯以获取最新更新。