【问题标题】:Fuelphp ORM can't access related tableFuelphp ORM无法访问相关表
【发布时间】:2013-10-25 12:48:29
【问题描述】:

我尝试使用 ORM 访问两个表(team、team_managers)。我收到错误“Fuel\Core\PhpErrorException [注意]:尝试获取非对象的属性”。

这是引发错误的代码:

<?php
$team = Model_Team::find('all', array('related' => array('team_managers')));
$team_managers = $team->team_managers;

foreach($team_managers as $tm){
    echo $tm->id;
}

这样做是可行的,但我认为它违背了 ORM 的目的:

<?php
$team = Model_Team::find('all', array('related' => array('team_managers')));
$team_managers = Model_Team_Manager::find('all');

foreach($team_managers as $tm){
    echo $tm->id;
}

在团队模型中,我有这样的关系:

protected static $_has_many = array('team_managers' => array(
'model_to' => 'Model_Team_Manager',
'key_from' => 'id',
'key_to' => 'team_id',
));

我怎样才能让它与 $team->team_managers 一起工作?

【问题讨论】:

  • 如果我调用一个特定的团队而不是“全部”,它实际上确实有效。有谁知道为什么我不能用“全部”来称呼它?在fuelphp文档中,他们使用“all”并且它可以工作。 =[fuelphp.com/docs/packages/orm/relations/intro.html

标签: php orm fuelphp


【解决方案1】:

我认为你在做什么是好的,我不明白你为什么要访问$team-&gt;team_managers

$teamModel_Team 对象数组中,这是您的错误。

尝试以下方法:

$teams = Model_Team::find('all', array('related' => array('team_managers')));

foreach ($teams as $team) {
    foreach ($team->team_managers as $team_manager) {
        echo $team_manager->id;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多