我正在尝试在cakephp 3中创建两个模型(服务器和application_endpoints)表之间的关联。我想要实现的是将所有数据从application_endpoints表获取到服务器模型。所以在视图中我可以访问所有数据。
服务器可以在application_endpoints表中有多个VIP和端点,我正在使用hasMany关联。所以在ServersTable.php中我添加了以下代码:
$this->hasMany('ApplicationEndpoints', [
'foreignKey' => 'server_id',
'dependent' => true
]);
因此,当我浏览服务器视图页面并单击变量选项卡内的调试工具包时,我看不到任何连接。我看到数组中的服务器列表,但是数组中的每个服务器都没有显示与application_endpoints表的任何关系。
请评论并告诉我,如果不清楚,我也链接sqlfiddle关于mysql架构。
更新1
我也在ServersTable.php中尝试了这段代码:
$this->belongsTo('ApplicationEndpoints', [
'bindingKey' => 'server_id',
'joinType' => 'INNER',
]);
答案 0 :(得分:0)
所以hasMay是在两个模型之间建立关联的正确方法。
$this->hasMany('ApplicationEndpoints', [
'foreignKey' => 'server_id',
'dependent' => true
]);
我不得不在服务器的控制器中添加额外的代码,以使其与下面的代码一起使用:
// View method
$query = $this->Servers->get($id, [
'contain' => ['ApplicationEndpoints']
]);
$this->set('data', $query);