我希望,我只有一个小问题和一个简单的错误。我有一个 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,我也应该正确地调用这个方法。
我用谷歌搜索,但没有很多例子或类似的问题。所以我希望你能帮助我并向我展示我的小错误:)
非常感谢。
五