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'
        ]);
...

ここで、関連付けられた「dataSources」を使用してモデルをロードしたいと思います

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

最初にマッチングメソッドなしで試してみましたが、どちらの場合も同じエラーが発生します:

ZToolProjectSteps は dataSources に関連付けられていません

私の理解では、関連付けを正しく定義する必要があり、マッチングがなくてもファインダーを呼び出すときに、このメソッドも正しく呼び出す必要がありました。

私はぐるぐる回っていますが、多くの例や同様の問題はありません。だから、あなたが私を助けて、私の小さな間違いを見せてくれることを願っています:)

どうもありがとう。

4

0 に答える 0