これはモデルレベルで行うべきだと思います。基本的にViewレベルとは関係ありません。
この job_number フィールドが ID と厳密に関連付けられている場合は、モデルの式フィールドとして作成し、データベースに保存することさえできません。たとえば、ジョブ番号 = ID + 100 です。
しかし、本当にデータベースに保存したい場合は、おそらく次のようにする必要があります。
1) モデルでは、type('number') の通常のフィールドとして job_number を作成しますが、このフィールドを表示する場所 (フォーム、グリッド) に応じて ->system(true) または ->editable(false) を使用します。
2) モデルの init メソッドでフック afterInsert を追加します。
function init(){
parent::init();
// ... your field definitions here
// add afterInsert hook
$this->addHook('afterInsert',array($this,'afterInsert'));
}
3) モデル作成メソッド内
function afterInsert($m,$new_id){ // <-- new_id is ID of newly inserted record
$m->load($new_id);
$m['job_number'] = $new_id + 100; // <-- your function here
$m->save();
}
or maybe you can even write it simpler - not sure
function afterInsert($m,$new_id){ // <-- new_id is ID of newly inserted record
$this->set('job_number',$new_id + 100); // <-- your function here
$this->save();
}
これはうまくいくはずですが、私はこれをテストしませんでした。ここにただただその場で書いているだけです。
これを試してみて、さらにサポートが必要な場合はお知らせください。また、ATK4 IRC チャンネルに参加して直接質問することも大歓迎です。