gpt4 book ai didi

php - cakephp 3 在子关联表中使用包含

转载 作者:行者123 更新时间:2023-11-29 05:05:54 25 4
gpt4 key购买 nike

我有 4 个表:提案、投标、用户和驱动程序。提案有许多出价,出价有许多用户,最后驱动程序属于用户。

我想要做的是获取提案 1 的所有出价,其中应显示提案名称、出价编号、出价的用户详细信息,包括驱动程序表中保存用户的一些特定详细信息的字段。

我的架构如下:

    CREATE TABLE `proposals` (
`id` int(11) NOT NULL,
`email` varchar(200) NOT NULL,
`item` int(11) NOT NULL,
`desc` varchar(100) NOT NULL,
`sess` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `bids` (
`id` int(11) NOT NULL,
`proposal_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`amount` double NOT NULL,
`session_code` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `users` (
`id` int(11) NOT NULL,
`First_Name` varchar(200) DEFAULT NULL,
`Last_Name` varchar(200) DEFAULT NULL,
`role` varchar(200) NOT NULL,
`Mobile_No` int(11) DEFAULT NULL,
`Membership_Start` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Address` varchar(255) DEFAULT NULL,
`Post_Code` varchar(255) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `drivers` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`verified` varchar(255) NOT NULL,
`dealno` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这是我正在使用的失败代码 - 我知道我错了:

     $query = $this->Bids->find()    
->contain([
"Users",
"Drivers",
"Proposals"

])
->matching("Proposals", function($q){
return $q->where(["proposals.id" => $id ]);
});

$bid = $this->paginate($query);

任何帮助将不胜感激。

最佳答案

我用以下方法修复了这个问题:

 $proposal = $this->Proposals->get($id, [
'contain' => ['Bids' => ['Users' => ['Drivers']]]

]);

关于php - cakephp 3 在子关联表中使用包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com