<?php
/**
* User: delboy1978uk
* Date: 19/11/2016
* Time: 21:37
*/
namespace Del\Form\Field;
use Del\Form\Renderer\Field\CheckboxRender;
use Del\Form\Traits\CanRenderInlineTrait;
use Del\Form\Traits\HasOptionsTrait;
class CheckBox extends FieldAbstract implements ArrayValueInterface
{
use CanRenderInlineTrait;
use HasOptionsTrait;
/**
* We end up ignoring this during rendering Checkboxes, see the renderer for info
*
* @return string
*/
public function getTag()
{
return 'div';
}
public function init()
{
$this->setValue([]);
$this->setRenderInline(false);
$this->setRenderer(new CheckboxRender());
}
/**
* @param $key
* @return $this
*/
public function checkValue($key)
{
$values = $this->getValue();
$values[$key] = true;
$this->setValue($values);
return $this;
}
/**
* @param $key
* @return $this
*/
public function uncheckValue($key)
{
$values = $this->getValue();
if (in_array($key, $values)) {
$index = array_search($key, $values);
unset($values[$index]);
}
$this->setValue($values);
return $this;
}
}
|