0

我找到了使用 ATK4.2.1 向模型添加和表达的新方法,但是我在将其添加到 CRUD 视图时遇到问题,但没有出现错误"Method is not defined for this object"

这可能吗?可以在 CRUD 对象中查看表达式吗?

型号代码

->addExpression('books_written')->set(function($select){
  return $select->dsql()
    ->table('book')
    ->field($select->expr('count(*)'))
    ->where('author_id',$select->getField('id'));
}
});

通过将“isUser”添加到字段列表而导致错误的页面方法。

$crud = $AddressBook->add('CRUD');
$crud->setModel('PersonLockedAccount',array('firstName','lastName','email','mobile','isUser'))->addCondition('account_id',$accountId)->addCondition('id','!=',$personId);
4

1 回答 1

1

文档页面上有一个错误。Agile Toolkit 中的所有回调方法都接收一个“调用者”作为第一个参数。在这种情况下,它将是模型本身。第二个参数是查询,它正在进行中。表达式使用哪个 dsql 无关紧要:

->addExpression('books_written')->set(function($model,$select){
//                                             ^^^^^^
  return $select->dsql() // creates new, empty dsql
    ->table('book')
    ->field($select->expr('count(*)'))
    ->where('author_id',$select->getField('id'));
}
});
于 2012-08-16T09:46:05.543 回答