【发布时间】:2018-04-12 22:59:52
【问题描述】:
我在这里有一条路线,其中一个控制器与一个动作相关联
'car/cars' => [
'GET' => [
'controller' => $CarController,
'action' => 'cars'
],
]
这对我来说非常好,直到我向同一路由添加具有不同操作的第二个控制器,如下所示:
'car/cars' => [
'GET' => [
'controller' => $CarController,
'action' => 'cars'
],
'GET' => [
'controller' => $ManufacturerController,
'action' => 'list'
]
],
我的问题是第一个动作停止工作,第二个动作开始工作。有没有另一种方法可以将两个不同的操作路由到car/cars url?我已经尝试了下面的方法,它给了我相同的结果
'car/cars' => [
'GET' => [
'controller' => $CarController,
'action' => 'cars'
],
],
'car/cars' => [
'GET' => [
'controller' => $ManufacturerController,
'action' => 'list'
],
],
【问题讨论】:
-
我不确定我是否遵循 - 如果两个不同的控制器方法对应于同一路径,如果有人访问该 URL,您希望发生哪一个?作为参考,这两个失败的原因是您在数组中多次设置相同的键 - 最后一个实例将始终覆盖以前的实例。
-
@iainn 如果有人访问了该 URL,我希望执行这两个操作。例如,链接到
list的动作正在显示制造商,而动作cars负责列出汽车。我现在明白它不止一次设置同一个键,有没有办法解决这个问题或解决这个问题的方法? -
添加第三个,它自己运行列表和汽车,假设你也想保持这些分开
-
您没有说明您的操作是做什么的(或者您正在使用哪个路由库,如果有的话),但假设这些操作生成网页,您是否只是希望在一个之后输出两个完整的 HTML 页面另一个?每条路由都需要对应一个 single 动作,然后它可以根据需要执行尽可能多或尽可能少的操作。
-
@iainn 我会尝试更清楚一点对不起。操作
cars导致一个单独的 php 控制器(此文件连接到 cars 表),其中包含一个名为“cars”的函数,它将运行。这个函数运行一个SELECT FROM,它显示所有的汽车。操作list连接到制造商的php 文件,该文件执行相同的操作并运行SELECT FROM,但在侧边栏上显示制造商。这些是控制器文件中两个函数的屏幕截图:imgur.com/a/3SRj5 这允许我使用 $manu 和 $cars 变量来查看制造商和汽车。