summary_fields
配列に同じgetterメソッドで変更したいTimeデータ型がいくつかありますが、それらにプロパティを渡すことはできないようです。私の独創的な考えでした:再利用可能なsummary_fields getter Silverstripe
class BusinessHour extends DataObject {
private static $db = array(
'Title' => 'Varchar(9)',
'Day' => 'Enum("Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday", "Monday")',
'Open' => 'Time',
'Close' => 'Time',
'Closed' => 'Boolean'
);
private static $summary_fields = array(
'Day' => 'Day',
'OpenClose(Open)' => 'Open',
'OpenClose(Close)' => 'Close'
);
public function getOpenClose($val) {
if($val == FALSE) {
return "Closed";
}else {
return $val;
}
}
}
私は時間のデータ型を拡張し、このようにそれを使用することができますと仮定しています:
private static $summary_fields = array(
'Open.OpenClose' => 'Open',
'Close.OpenClose' => 'Close'
);
しかし、これは、この程度の正しい方法ですか?
あなたのユースケースはなんですか?時刻が設定されていない場合は「閉じる」を、その他の場合は実際の時刻を表示する必要がありますか? – bummzack
それは私が目指しているものです。私は、同じことをするOpenとCloseの2つの別々の関数を書く必要がないようにしたいと思っています。 – Chris
私はまだあなたがしようとしているものを得られません。 OpenとCloseの時間があるようですが、GridFieldに何を表示する必要がありますか?あなたは例を挙げることができますか? – bummzack