0

ATK4.2.1 を使用してモデルに式を追加する新しい方法を見つけましたが、「このオブジェクトに対してメソッドが定義されていません」というエラーが発生せずに、これを CRUD ビューに追加する際に問題が発生しています。

これは可能ですか?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 のすべてのコールバック メソッドは、最初の引数として「Caller」を受け取ります。この場合、それはモデル自体になります。2 番目の引数は、進行中のクエリです。式に使用する 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 に答える