Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Object Yii使用条件从对象实例($this)延迟加载(可能吗?)_Object_Yii_Models_Relationship_Has Many - Fatal编程技术网

Object Yii使用条件从对象实例($this)延迟加载(可能吗?)

Object Yii使用条件从对象实例($this)延迟加载(可能吗?),object,yii,models,relationship,has-many,Object,Yii,Models,Relationship,Has Many,我是Yii的新手,习惯了Kohana。我有两种型号: 1.sampleRequests->(这有许多样本共享) 2.样本共享 在我的例子中,我已经实例化了一个对象(sampleRequest),并且我正在尝试根据添加的标准获取一个特定的sampleShares 在科哈纳,我可以做到: $myShare = $this->sampleShares->where('user_id','=',$my_user_id)->find(); 我也尝试过类似的方法: $myShare =

我是Yii的新手,习惯了Kohana。我有两种型号: 1.sampleRequests->(这有许多样本共享) 2.样本共享

在我的例子中,我已经实例化了一个对象(sampleRequest),并且我正在尝试根据添加的标准获取一个特定的sampleShares

在科哈纳,我可以做到:

$myShare = $this->sampleShares->where('user_id','=',$my_user_id)->find(); 
我也尝试过类似的方法:

$myShare = $this->sampleShares->find(array(
'condition'=>'user_id:user_id',
'params'=>array(':user_id'=>$my_user_id))); 
前一条不适用于我,但以下几条适用:

$myShare = SampleShare::model()->find(array(
'condition'=>'sample_id=:id AND user_id=:user_id',
'params'=>array(':id'=>$this->id, ':user_id'=>Yii::app()->user->id)));
因此,我的问题是,您能否获取相关模型,并将附加的选择条件添加到Yii中建立的关系中(特别是实例或$this)?(类似于我的Koahana示例?)如果是,您如何做到这一点

$myShare = SampleShare::model()->findAll(array('condition'=>'sample_id='.$id.' AND user_id='.$user_id));
和关系查询示例

$myShare = SampleShare::model()->with('sampleRequests')->findAll(array('condition'=>'sample_id='.$id.' AND user_id='.$user_id));
您可以在模型文件中找到房地产名称


然后,您可以使用$myShare->sampleRequests

获取相关的表记录。您可以在模型文件中设置表之间的关系,如下所示:

public function relations()
{
    return array(
        'category' => array(self::BELONGS_TO, 'CategoryCategory', 'category_id'),
    );
}
如何使用:

$model=Blog::model()->with('category')->findAll(); //object

没关系,我想出来了。我只需要替换:

$this->sampleShares->find(


谢谢你的回答,但这并不能回答我的问题。在我的例子中,关系已经建立。我只是想澄清一下情况。存在请求,每个请求可能有多个共享。我已经实例化了一个特定的sampleRequest($this)。它有许多请求(即关系名称)。表名为(示例_请求)。所以我的观点是,我希望能够使用->$this来处理特定的示例请求。
$this->with('sampleShares')->find(