silverstripe-framework/tests/php/ORM/DataObjectTest/Team.php

96 lines
2.5 KiB
PHP
Raw Normal View History

2016-10-14 03:30:05 +02:00
<?php
namespace SilverStripe\ORM\Tests\DataObjectTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\HasManyList;
use SilverStripe\ORM\ManyManyList;
2016-10-14 03:30:05 +02:00
/**
* @property string Title
* @property string DatabaseField
* @property array SalaryCap
* @property string FoundationYear
* @property bool CustomHydratedField
* @method Player Captain()
* @method Player Founder()
* @method Player HasOneRelationship()
* @method HasManyList SubTeams()
* @method HasManyList Comments()
* @method HasManyList Fans()
* @method HasManyList PlayerFans()
* @method ManyManyList Players()
* @method ManyManyList Sponsors()
* @method ManyManyList EquipmentSuppliers()
*/
2016-10-14 03:30:05 +02:00
class Team extends DataObject implements TestOnly
{
private static $table_name = 'DataObjectTest_Team';
2016-10-14 03:30:05 +02:00
private static $db = [
'Title' => 'Varchar',
'DatabaseField' => 'HTMLVarchar',
'NumericField' => 'Int',
];
2016-10-14 03:30:05 +02:00
private static $has_one = [
"Captain" => Player::class,
"Founder" => Player::class,
'HasOneRelationship' => Player::class,
];
2016-10-14 03:30:05 +02:00
private static $has_many = [
'SubTeams' => SubTeam::class,
'Comments' => TeamComment::class,
2018-01-16 19:39:30 +01:00
'Fans' => Fan::class . '.Favourite', // Polymorphic - Team fans
'PlayerFans' => Player::class . '.FavouriteTeam',
// multi-relational relation:
'ManyPlayers1' => Player::class . '.MultiRelational',
'ManyPlayers2' => Player::class . '.MultiRelational',
];
2016-10-14 03:30:05 +02:00
private static $many_many = [
'Players' => Player::class
];
2016-10-14 03:30:05 +02:00
private static $many_many_extraFields = [
'Players' => [
'Position' => 'Varchar(100)'
]
];
2016-10-14 03:30:05 +02:00
private static $belongs_many_many = [
2018-01-16 19:39:30 +01:00
'Sponsors' => EquipmentCompany::class . '.SponsoredTeams',
'EquipmentSuppliers' => EquipmentCompany::class . '.EquipmentCustomers'
];
2016-10-14 03:30:05 +02:00
private static $summary_fields = [
'Title', // Overridden by Team_Extension
'Title.UpperCase' => 'Title',
'Captain.ShirtNumber' => 'Captain\'s shirt number',
'Captain.FavouriteTeam.Title' => 'Captain\'s favourite team'
];
2016-10-14 03:30:05 +02:00
private static $default_sort = '"Title"';
2016-10-14 03:30:05 +02:00
private static $extensions = [
Team_Extension::class
];
2016-10-14 03:30:05 +02:00
public function MyTitle()
{
return 'Team ' . $this->Title;
}
2016-10-14 03:30:05 +02:00
public function getDynamicField()
{
return 'dynamicfield';
}
public function ReturnsNull()
{
return null;
}
2016-10-14 03:30:05 +02:00
}