我有以下情况。
我有一个表“ drivers_events”,其中存储了为某个事件预订的驱动程序。
现在我想做以下
SELECT
Driver.id,
Driver.name
FROM
drivers AS Driver
INNER JOIN
drivers_events AS Listing
ON Driver.id = Listing.driver_id
WHERE
Listing.event_id = 83
ORDER BY
Driver.name ASC;
如果我在phpmyadmin中将其作为SQL查询运行,则它可以正常运行,并且可以从“驱动程序”表中获取正确的ID和名称。
当我像这样在控制器中执行此操作时
$drivers = $this->Jobs->query("
SELECT
Driver.id,
Driver.name
FROM
drivers AS Driver
INNER JOIN
drivers_events AS Event
ON Driver.id = Event.driver_id
WHERE
Event.event_id = $activeevent
ORDER BY
Driver.name ASC
");
然后我得到了过去创建的工作的完整数组。
我做错了什么 ?
如果有人可以帮助我,那将是很棒的。
提前致谢
最佳答案
我尝试了很多。我得出的结论是,我可以读出分配给事件的驱动程序。
在控制器中看起来像这样
$drivers = $this->Jobs->drivers_events->find('list',
[
'conditions' =>
[
'drivers_events.event_id' => $this->request->session()->read('Event.active')
],
'keyField' => 'driver_id',
'valueField' => 'driver_id'
]
);
在模型中
$this->belongsTo('drivers_events', [
'foreignKey' => 'event_id',
]);
因此,现在我可以找到合适的驱动程序来从事某项活动中的驾驶工作。
但是,如何从“ Drivers”表中获取驱动程序的名称而不是ID?
寻求帮助
关于mysql - Cakephp 3.5内部加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48170155/