【问题标题】:Kohana3 ORM save problemKohana3 ORM保存问题
【发布时间】:2010-05-07 08:14:58
【问题描述】:

任何人都可以帮助我使用 Kohana ORM。我可以取出名称和值。我可以给他们新的值,并尝试将它们保存回基础,但在 phpmyadmin 中,我仍然可以看到这些选项属性的旧值。这段代码有什么问题(它可以工作并回显正确的值,但我在 db 中看不到它):

$option = ORM::factory('draft')
->where('user_id', '=', $user_id)
->find()
    ->draft_options
    ->where('name', '=', $_POST['name'])
    ->find();

$option->name = $_POST['name'];
$option->value = $_POST['value'];
$option->save();
if ($option->saved()) echo Kohana::debug($option->value);

【问题讨论】:

    标签: kohana kohana-3


    【解决方案1】:

    这是你要找的吗?

    $option = ORM::factory('draft')
        ->where('user_id', '=', $user_id)
        ->find();
    
    $draft_option = $option->draft_options
        ->where('name', '=', $_POST['name'])
        ->find();
    
    $draft_option->name = $_POST['name'];
    $draft_option->value = $_POST['value'];
    $draft_option->save();
    
    if ($draft_option->saved()) echo Kohana::debug($draft_option->value);
    

    【讨论】:

    • 我认为您的解决方案是正确的,但就我而言,它仍然无法正常工作。我认为我的模型一定有问题。
    【解决方案2】:

    尝试检查是否使用“$option->loaded()”加载数据,或者在“find()”之后回显 $option(它会返回主键)。

    【讨论】:

    • $option->loaded() 回显 TRUE,选项回显对象信息(Model_Draft_option(35) 等 ..)。首先,如果我回显 $option->value,那么它的值为 1。然后在我更改 $option->value = 2; 之后$选项->保存();那么它仍然没有改变价值。
    • 是属于表格草稿或草稿选项的名称和值字段吗?因为在一个模型上调用 save() 不会保存所属模型,除非你重写 save() 方法并告诉它这样做。
    • 这些属于draft_options。我怎样才能覆盖它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多