【问题标题】:Link models cakephp 2.x链接模型 cakephp 2.x
【发布时间】:2020-01-23 03:51:52
【问题描述】:

My client has many positions and each position has many shifts.

当我进行客户端查询 $this->Client->find('all') 时,我需要返回每个客户端的所有作业和数据转移

Array(
    [0] => Array(
        [Client] => Array(
            [id] => 1
            [name] => ALLIANCE
            [date1] => 
            [date2] => 
            [status] => 1
        )
        [Jobs] => Array(
            [0] => Array(
                [id] => 1
                [client_id] => 1
                [description] => ensamblador
                [date] => 2019-09-22
                [status] => 1
                [created] => 2019-09-22 21:11:23
                [modified] => 2019-09-22 21:11:25
                [user_id] => 1
            )
        )
    )
    [1] => Array(
        [Cliente] => Array(
            [id] => 2
            [nname] => BAXTER
            [date1] => 
            [date2] => 
            [status] => 1
        )
        [Jobs] => Array(
            [0] => Array(
                [id] => 2
                [client_id] => 2
                [description] => ensamble
                [date] => 2019-09-22
                [status] => 1
                [created] => 2019-09-22 21:32:26
                [modified] => 2019-09-22 21:32:27
                [user_id] => 1
            )
        )
    )
    [2] => Array(
        [Cliente] => Array(
            [id] => 3
            [nombre] => BD CARE FUSION
            [date1] => 
            [date2] => 
            [status] => 1
        )
        [Jobs] => Array()
    )

但我也不知道该怎么做才能给我发班次

【问题讨论】:

  • 请分享您从中获取数据的代码和结构数据库表。发布图片无济于事。

标签: php cakephp cakephp-2.0 cakephp-2.3


【解决方案1】:

我想,下面的代码应该足以满足您的场景。如果您能提供更多详细信息,我们可以为您提供更好的帮助。

App::uses('AppModel', 'Model');
class ClientJob extends AppModel
{

    public $belongsTo = array(
        'Client' => array(
            'className' => 'Client',
            'foreignKey' => 'client_id',
        )
    );

    public $hasMany = array(
        'Shifts' => array(
            'className' => 'ClientJobShift',
            'foreignKey' => 'job_id'
        )
    );
}

您可以尝试使用这种方式检查结果

$clientJob = this->ClientJob->findById(9999);
echo json_encode($clientJob);

【讨论】:

    【解决方案2】:

    你有没有尝试设置你的ClientJobShift属于ClientJob

    这样

    <?php
    App::uses('AppModel','Model');
    class ClientJobShift extends AppModel {
    
    
       $this->belongsTo('ClientJob')
            ->setForeignKey('job_id');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      相关资源
      最近更新 更多