Php Phalcon发现与模型关系的条件

Php Phalcon发现与模型关系的条件,php,model,phalcon,phalcon-orm,Php,Model,Phalcon,Phalcon Orm,我有这个模型代码: class TvguideChannel extends Model{ public function initialize() { $this->setSource('tvguide_channel'); $this->setConnectionService('db'); $this->hasMany('code', __NAMESPACE__.'\Tvguide', "ch_code", ['

我有这个模型代码:

class TvguideChannel extends Model{

    public function initialize() {
        $this->setSource('tvguide_channel');
        $this->setConnectionService('db');

        $this->hasMany('code', __NAMESPACE__.'\Tvguide', "ch_code", ['alias' => 'Tvguide']);
    }

    public function getSource() {
        return 'tvguide_channel';
    } 
}
和控制器:

    $data = TvguideChannel::find();
    $dateDetails = $data->getTvguide(['order' => '$_POST["time"] DESC']);

    $paginator = new PaginatorModel(
        array(
            "data" => $data,
            "limit" => $limit,
            "page" => $curPage
        )
    );

    $items = $paginator->getPaginate();
这是行不通的。如何在控制器中使用Tvguide模型中的列?
谢谢您的帮助。

您的控制器代码将返回一个
TvguideChannel
实例。 要访问关系,必须使用上面定义的别名

$data->Tvguide
以上内容应包含此记录的所有电视指南

下面是一个更详细的
hasMany()
示例:


更新:向关系本身传递参数的示例

型号代码:

class Orders extends BaseModel
{
    public function initialize()
    {
        $this->hasMany('id', 'Models\OrderDetails', 'order_id', [
            'alias' => 'details',
        ]);
    }
 }
// We want only related records with price higher than 9.00
$order = \Models\Orders::findFirst(17);
$orderDetails = $order->getDetails([
    'conditions' => 'price > 9.00'
]);
控制器代码:

class Orders extends BaseModel
{
    public function initialize()
    {
        $this->hasMany('id', 'Models\OrderDetails', 'order_id', [
            'alias' => 'details',
        ]);
    }
 }
// We want only related records with price higher than 9.00
$order = \Models\Orders::findFirst(17);
$orderDetails = $order->getDetails([
    'conditions' => 'price > 9.00'
]);

更新2

find()
方法返回一个结果集,这意味着您不能直接使用
$data->getTvguide
。您必须迭代每个记录并访问其相关条目

$data = TvguideChannel::find();
foreach ($data as $item) {
    // This will return related guides for each channel.
    $dateDetails = $item->getTvguide(...);
}

如果您需要从相关模型中查找where,则需要使用查询生成器。

但如果我想发送where参数?['conditions'=>'Chu code=$\u POST[“Chu code”]]。如何在模型中发送此信息?如果我理解您的意思是正确的,您希望将参数传递给
Tvguide
关系吗?用上面类似的例子更新了我的答案。不起作用。未捕获错误:调用未定义的方法Phalcon\Mvc\Model\Resultset\Simple::getTvguide()您能演示如何调用它吗?也许可以尝试使用
['alias'=>'guides']
$data->getGuides()
?我需要获取所有记录,但不是FindFirst(17)。