複数の方法でデータオブジェクトを使用する方法を理解できないようです。今は1ページに表示することしかできません。複数のページに表示するSilverstripeデータオブジェクト
CMSのテーブルの項目を編集し、あるページの項目のリストを表示し、別のページの特定の項目を表示したいと考えています。
ここまでは、ページ内のすべてのクライアントを一覧表示してCMSで編集できるようにしています。私は "clientPage"以外のページにそれらをリストアップすることはできませんし、クライアントの詳細なビューページを見ることもできません。
class Clients extends DataObject {
public static $db = array(
//All the table columns
);
// One-to-one relationship with profile picture
public static $has_one = array(
'ProfilePicture' => 'Image',
'ClientPage' => 'ClientPage'
);
// Summary fields
public static $summary_fields = array(
'ProfilePicture.CMSThumbnail'=>'Picture',
'FIRST_NAME'=>'First Name',
'LAST_NAME'=>'Last Name',
'EMAIL'=>'Email'
);
public function getCMSFields_forPopup() {
// Profile picture field
$thumbField = new UploadField('ProfilePicture', 'Profile picture');
$thumbField->allowedExtensions = array('jpg', 'png', 'gif');
// Name, Description and Website fields
return new FieldList(
//all the editable fields for the cms popup
);
}
}
ClientPage
class ClientPage extends Page{
private static $has_many = array(
'Clients'=>'Client'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Client', GridField::create(
'Client',
'Client List',
$this->Clients(),
GridFieldConfig_RecordEditor::create()
));
return $fields;
}
}
class ClientPage_Controller extends Page_Controller{
public function init() {
parent::init();
}
}
私は、同じデータを使用して、ディレクトリページを作成しようとした場合、それは動作しませんオブジェクト
class ClientDirectoryPage extends Page {
private static $has_many = array(
'Clients'=>'Client'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
return $fields;
}
}
class ClientDirectoryPage_Controller extends Page_Controller{
public function init() {
parent::init();
}
}
としてください。なぜ、別のクライアントクラスが必要なのでしょうか。 –
どうすればいいですか?提供されたリンクが設定されているクライアントページを1つだけ作成する場合。私はすでにテーブルのクライアントがいっぱいで、それぞれのページを作成したくない..私は$ datObjectを使用することができます把握しようとしています::テーブルのすべての行のリストを表示する取得.. CAnそれを見せてくれる? – silversunhunter
クライアントには複数のデータフィールドがあり、サイト管理者によってサイト内で管理されます。 ... – silversunhunter