【问题标题】:how do you set 2 table names in a model using Zend Framework 2如何使用 Zend Framework 2 在模型中设置 2 个表名
【发布时间】:2014-04-01 15:57:42
【问题描述】:

我在 Zend Framework 1.x 中创建了一个模型,它扩展了 Zend_Db_Table_Abstract 类。

require_once 'Zend/Db/Table/Abstract.php';

class Model_Account extends Zend_Db_Table_Abstract
{

    protected $_name = 'accounts';

    public function someFunction()
    {
         //do something
    }

}

在 Zend Framework 中,您必须在 $_name 属性中声明表名。目前,我只知道如何一次声明一个表名,这意味着我的 SQL 语句将全部指向$_name 属性中指定的给定表。

有没有办法在模型中声明多个表,以便我可以有效地执行连接语句?

【问题讨论】:

  • 这是 Zend Framework 1.x.. 另外,您的问题不清楚。
  • @mmmshuddup - 谢谢我已经清理了,希望这更清楚
  • 这仍然是 Zend Framework 1,不是 2。

标签: php mysql sql zend-framework zend-framework2


【解决方案1】:

我了解到您希望拥有多个模型,以便执行联接。实际上,您可以完成连接实际上不需要第二个模型。

require_once 'Zend/Db/Table/Abstract.php';

class Model_Account extends Zend_Db_Table_Abstract
{
    protected $_name = 'accounts';

    public function someFunction()
    {
        $otherTable = array('ot' => 'other_table');
        $columns    = array(
           'accounts.column_name', 
           'accounts.other_column_name'
        );
        $select = $this->select()
            ->from($this, $columns)
            ->join($otherTable, 'ot.accounts_id = accounts.id', array());

        $rowset = $this->fetchAll($select);
        return $rowset;
    }
}

如果你想要另一个模型,只需在你的 models 文件夹中创建一个新的 PHP 文件并在那里声明你的类。

class Model_OtherTable extends Zend_Db_Table_Abstract
{
    protected $_name = 'other_table';

    // ...
}

使用它的一个例子是:

$accounts = new Model_Account();
$results  = $accounts->someFunction();
foreach ($results as $result) {
    echo $result->column_name, '<br>';
    echo $result->other_column_name, '<br>';
}

// to see output of result set do this
Zend_Debug::dump($results->toArray());

【讨论】:

  • 谢谢...现在我如何才能访问每列的内容?例如,会不会是...'echo $this->column_name'?
  • 检查编辑。如果这回答了您的问题,那么请接受。谢谢你。 :)
  • 谢谢,我的解决方案需要一些修改,但你让我走上了正轨……非常感谢
猜你喜欢
  • 2012-08-26
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 2012-08-22
  • 1970-01-01
  • 2012-10-07
相关资源
最近更新 更多