Hi all.
i have a problem and don't know why.
here is the gridfield:
class Partido extends Page {
static $db = array(
'Resultado' => 'Varchar',
'Fecha' => 'date',
);
static $has_many = array(
//'Jugadores' => 'Jugador'
'Puntuaciones' => 'Puntuacion'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$dateField = new DateField('Fecha');
$dateField->setConfig('showcalendar', true);
$fields->addFieldToTab('Root.Main', $dateField, 'Content');
$fields->addFieldToTab("Root.Main", new TextField("Resultado"), 'Content');
$config = GridFieldConfig_RecordEditor::create();
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array(
'Jugador.Nombre' => 'Nombre',
'Jugador.Apellido'=> 'Apellido',
'Puntos'=> 'Puntuacion'
));
$studentsField = new GridField(
'Puntuaciones',
'Puntuacion',
$this->Puntuaciones(),
$config
);
$fields->addFieldToTab('Root.Jugadores', $studentsField);
return $fields;
}
}
class Puntuacion extends DataObject {
static $db = array(
'Puntos' => 'Varchar',
);
static $has_one = array(
'Jugador' => 'Jugador',
'Partido' => 'Partido'
);
}
works fine, when i click "add" button the admin show me this.
if I create a record, all is working.
but is not showing me the name of the "jugador", and have to solve it.
to solve it i did this to "Puntuacion"
class Puntuacion extends DataObject {
static $db = array(
'Puntos' => 'Varchar',
);
static $has_one = array(
'Jugador' => 'Jugador',
'Partido' => 'Partido'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->push(new TextField('Puntos', 'Puntaje'));
$jugador = Jugador::get()->byID($this->JugadorID);
if($jugador){
$field = new TextField('JugadorID', 'Jugador', $jugador->Apellido);
$field->setDisabled(true);
$field->performDisabledTransformation();
$fields->push($field);
}else{
$fields->push(new DropdownField('JugadorID', 'Jugador', Jugador::get()->map('Nombre', 'Apellido')));
}
$partido = Partido::get()->byID($this->PartidoID);
//Debug::show($this);
//Debug::show();
if($partido){
$field = new TextField('PartidoID', 'Partido', $partido->Fecha);
$field->setDisabled(true);
$field->performDisabledTransformation();
$fields->push($field);
}else{
$fields->push(new DropdownField('PartidoID', 'Partido', Partido::get()->map('Fecha', "Resultado")));
}
return $fields;
}
}
now seems to be solved because now i can see de Lastname (Apellido)
But when I click the create button the player seems to not being saved
here is an image.
any help will be appreciated!!