Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii中是否有超过两个级别的with()?_Php_Activerecord_Yii - Fatal编程技术网

Php Yii中是否有超过两个级别的with()?

Php Yii中是否有超过两个级别的with()?,php,activerecord,yii,Php,Activerecord,Yii,我正在尝试这样做: $this->PickTicketLineModel->PickTicket->SO->CustomerShipToModel 如果我仔细检查每一件作品,我会得到一个用于PickTicketLine的模型,一个用于PickTicket,一个用于SO。当我到达CustomerShipToModel时,我返回null。因为这应该与数据库中的现有行匹配,所以我假设关系出现了问题。有什么建议吗 选择票证行表关系 'PickTicket' => arra

我正在尝试这样做:

$this->PickTicketLineModel->PickTicket->SO->CustomerShipToModel
如果我仔细检查每一件作品,我会得到一个用于PickTicketLine的模型,一个用于PickTicket,一个用于SO。当我到达CustomerShipToModel时,我返回null。因为这应该与数据库中的现有行匹配,所以我假设关系出现了问题。有什么建议吗

选择票证行表关系

'PickTicket' => array(self::BELONGS_TO, 'TblwhPickTicket', 'PickTicketNumber'),
'SO' => array(self::BELONGS_TO, 'TblsoSO', 'SONumber'),
'CustomerShipToModel' => array(self::BELONGS_TO, 'TblarCustomerShipTo', 'CustomerShipTo'),
'CustomerShipToModel' => array(self::HAS_MANY, 'TblarsoSO', 'CustomerShipTo'),
选择票证表关系

'PickTicket' => array(self::BELONGS_TO, 'TblwhPickTicket', 'PickTicketNumber'),
'SO' => array(self::BELONGS_TO, 'TblsoSO', 'SONumber'),
'CustomerShipToModel' => array(self::BELONGS_TO, 'TblarCustomerShipTo', 'CustomerShipTo'),
'CustomerShipToModel' => array(self::HAS_MANY, 'TblarsoSO', 'CustomerShipTo'),
那么表关系呢

'PickTicket' => array(self::BELONGS_TO, 'TblwhPickTicket', 'PickTicketNumber'),
'SO' => array(self::BELONGS_TO, 'TblsoSO', 'SONumber'),
'CustomerShipToModel' => array(self::BELONGS_TO, 'TblarCustomerShipTo', 'CustomerShipTo'),
'CustomerShipToModel' => array(self::HAS_MANY, 'TblarsoSO', 'CustomerShipTo'),
客户发货到表的关系

'PickTicket' => array(self::BELONGS_TO, 'TblwhPickTicket', 'PickTicketNumber'),
'SO' => array(self::BELONGS_TO, 'TblsoSO', 'SONumber'),
'CustomerShipToModel' => array(self::BELONGS_TO, 'TblarCustomerShipTo', 'CustomerShipTo'),
'CustomerShipToModel' => array(self::HAS_MANY, 'TblarsoSO', 'CustomerShipTo'),
这就是我最初获得PickTicketLine模型的原因:

$this->pickTicketLine = TblwhPickTicketLine::model()->with('PickTicket','PickTicket.SO')->FindByPk(array('PickTicketNumber'=>$pickTicketNumber, 'PickTicketLineNumber'=>$pickTicketLineNumber));

尝试显式加载所有相关数据:

$this->pickTicketLine = TblwhPickTicketLine::model()->with(array(
    'PickTicket' => array(
        'with' => array(
            'SO' => array(
                'with' => array('CustomerShipToModel')
            )
        )
    )        
))->findByPk(array(
    'PickTicketNumber'=>$pickTicketNumber,
    'PickTicketLineNumber'=>$pickTicketLineNumber
));
如果这也不起作用,请记录数据库请求并检查查询,如Pentium10在注释中所建议的那样。您可以让phpMyAdmin执行查询,或者使用MySQL“EXPLAIN”关键字获取更多信息。为了获取相关日志,必须将以下行添加到config/main.php文件中:

'components'=>array(
    'db'=>array(
        'enableProfiling' => true,
        'enableParamLogging' => true
    )
)

尝试显式加载所有相关数据:

$this->pickTicketLine = TblwhPickTicketLine::model()->with(array(
    'PickTicket' => array(
        'with' => array(
            'SO' => array(
                'with' => array('CustomerShipToModel')
            )
        )
    )        
))->findByPk(array(
    'PickTicketNumber'=>$pickTicketNumber,
    'PickTicketLineNumber'=>$pickTicketLineNumber
));
如果这也不起作用,请记录数据库请求并检查查询,如Pentium10在注释中所建议的那样。您可以让phpMyAdmin执行查询,或者使用MySQL“EXPLAIN”关键字获取更多信息。为了获取相关日志,必须将以下行添加到config/main.php文件中:

'components'=>array(
    'db'=>array(
        'enableProfiling' => true,
        'enableParamLogging' => true
    )
)

在with()链之前添加together()链,如果不起作用,则需要打开sql日志并查看生成的查询together()不起作用,尽管我不确定它应该做什么。现在,我已经开始使用findByPkU assign
$this->pickTicketLine
分别拉取customerShipTo模型,但是使用
$this->PickTicketLineModel
->PickTicket->SO->CustomerShipToModel,可能:
$this->pickTicketLine
->PickTicket->SO->customershipticketmodel在with()链之前添加()链,如果不起作用,您需要打开sql日志并查看生成了什么查询Together()不起作用,尽管我不确定它应该做什么。现在,我刚开始使用findByPkU assign
$this->pickTicketLine
分别拉取customerShipTo模型,但是使用
$this->pickTicketLine模型
->PickTicket->SO->customerShiptodel,可能:
$this->pickTicketLine
->PickTicket->SO->customerShiptodel您应该能够使用(数组)来做
('PickTicket.SO.CustomerShipToModel')
您应该能够使用(数组('PickTicket.SO.CustomerShipToModel'))执行