DBのカラムにdelete_flagをつけて論理削除することはよくあると思います。
findメソッドだとconditionsやwhereで検索条件としてdelete_flat=0をつけることが出来ますが、
findの場合データが無くても例外は出ません。
例外を出したい場合は、getにカスタムFinderを指定することが出来ます。
// カスタムFinder定義
class ExampleTable extends Table
{
// メソッド名はfindXxxの形
public function findNotDelete(Query $query): Query
{
return $query->where([
'delete_flag' => 0
]);
}
}
// getの引数にfinderを指定
$tableName->get($id, ['finder', 'notDelete']);
以上。