【问题标题】:Kohana 3 ORM: Saving relationshipsKohana 3 ORM:保存关系
【发布时间】:2010-12-13 15:20:49
【问题描述】:
<?php
class Model_Cliente extends ORM {
protected $_table_name = 'clientes';
protected $_primary_key = 'id';
protected $_has_one = array('loja' => array());
}
?>

<?php
class Model_Loja extends ORM {
protected $_table_name = 'lojas';
protected $_primary_key = 'id';
}
?>

<?php
// code here ...
public function action_index()
{
$loja = ORM::Factory('loja');
$loja->nome = 'Foo Bar Store';
$loja->endereco = 'foobar';
$loja->senha = '123456';

$cliente = ORM::Factory('cliente');
$cliente->empresa = 'Foo Bar Ltda.';
$cliente->responsavel = 'João da Silva Foo Bar';
$cliente->email = 'foobar@foobar.com';
$cliente->telefone = '123456789';
$cliente->novidades = true;
$cliente->loja = $loja;

$cliente->save();
}
// code here ...
?>

我收到错误消息:“Kohana_Exception [0]:Model_Cliente 类中不存在 loja 属性”。

为什么我不能将 loja 添加到 cliente ($cliente->loja = $loja) 然后保存?

【问题讨论】:

    标签: kohana-3 kohana-orm database-relations


    【解决方案1】:

    ORM 模型只能设置belongs_to 关系。所以,你应该重新排序你的代码:

    $cliente = ORM::Factory('cliente');
    $cliente->empresa = 'Foo Bar Ltda.';
    $cliente->responsavel = 'João da Silva Foo Bar';
    $cliente->email = 'foobar@foobar.com';
    $cliente->telefone = '123456789';
    $cliente->novidades = true;
    $cliente->save();  // save parent model before linking
    
    $loja = ORM::Factory('loja');
    $loja->nome = 'Foo Bar Store';
    $loja->endereco = 'foobar';
    $loja->senha = '123456';
    $loja->cliente = $cliente; // the same as $loja->cliente_id = $client->id;
    
    $loja->save();
    

    别忘了在Model_Loja 中定义$_belongs_to 属性!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 2011-03-24
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多