for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace ProtoneMedia\LaravelFormComponents\Components;
use Illuminate\Contracts\Support\Arrayable;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
class FormCheckbox extends Component
{
use HandlesValidationErrors;
use HandlesBoundValues;
public string $name;
public string $label;
public $value;
public bool $checked = false;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(
string $name,
string $label = '',
$value = 1,
$bind = null,
bool $default = false,
bool $showErrors = true
) {
$this->name = $name;
$this->label = $label;
$this->value = $value;
$this->showErrors = $showErrors;
$inputName = Str::before($name, '[]');
if ($oldData = old(static::convertBracketsToDots($inputName))) {
$this->checked = in_array($value, Arr::wrap($oldData));
}
if (!session()->hasOldInput() && $this->isNotWired()) {
$boundValue = $this->getBoundValue($bind, $inputName);
if ($boundValue instanceof Arrayable) {
$boundValue = $boundValue->toArray();
if (is_array($boundValue)) {
$this->checked = in_array($value, $boundValue);
return;
$this->checked = is_null($boundValue) ? $default : $boundValue;
* Generates an ID by the name and value attributes.
* @return string
protected function generateIdByName(): string
return "auto_id_" . $this->name . "_" . $this->value;