0

我希望,我只有一个小问题和一个简单的错误。我有一个 cakephp 2 应用程序,我目前正在切换到 3.1。我遇到了模型关联的问题。

这里表的定义:

namespace ProjectDesigner\Model\Table;

use Cake\ORM\Table;

class ZToolProjectsStepsTable extends Table {
#public $useTable ="z_tool_project_steps";
public $primaryKey = "id";
public $actsAs = array( 'Containable' );


public $name= "";
public $descr = "";
public $closing_desc = "";
public $activ_step = true;
public $custom_step = false;
public $open_step = true;
public $internal_custom_name = "";
public $step_order = 0;
public $project_id;

public function initialize(array $config){
    $this->table('z_tool_project_steps');

    $this->hasMany('dataSources',[
            'className' => 'ProjectDesigner.ZToolPStepsDataSources',
            'foreignKey' => 'step_id'
        ]);
...

现在我想加载模型及其关联“数据源”

$ZToolProjectStep = TableRegistry::get('ProjectDesigner.ZToolProjectSteps');
$steps = $ZToolProjectStep->find('all', array(
                            'conditions' => array('project_id' => $project_id)
                            ,'contain' => ['dataSources', 'exTemplates']
                            ,'order' => 'ZToolProjectSteps.step_order'));

首先我在没有匹配方法的情况下尝试了它,但是在这两种情况下都会出现相同的错误:

ZToolProjectSteps 不与数据源关联

在我的理解中,我应该正确地定义了关联,当我调用 finder 时,即使没有 machting,我也应该正确地调用这个方法。

我用谷歌搜索,但没有很多例子或类似的问题。所以我希望你能帮助我并向我展示我的小错误:)

非常感谢。

4

0 回答 0