1. Go to this page and download the library: Download ralphjsmit/tall-interactive library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ralphjsmit / tall-interactive example snippets
namespace App\Forms;
use RalphJSmit\Tall\Interactive\Forms\Form;
class UserForm extends Form
{
public function getFormSchema(): array
{
return [];
}
public function submit(): void
{
//
}
public function mount(): void
{
//
}
/** Only applicable for Modals and SlideOvers */
public function onOpen(): void
{
//
}
}
public function getFormSchema(Component $livewire): array
{
return [
TextInput::make('email')
->label('Enter your email')
->placeholder('[email protected]')
-> ->label('Enter your last name')
->placeholder('Doe'),
]),
TextInput::make('password')
->label('Choose a password')
->password(),
MarkdownEditor::make('why')
->label('Why do you want an account?'),
Placeholder::make('open_child_modal')
->disableLabel()
->content(
new HtmlString('Click <button onclick="Livewire.emit(\'modal:open\', \'create-user-child\')" type="button" class="text-primary-500">here</button> to open a child modal🤩')
),
];
}
public function getFormSchema(Component $livewire): array
{
return [
TextInput::make('year')
->label('Pick your year of birth')
->default(now()->subYears(18)->format('Y'))
->
public int $personId;
public function mount(array $params): void
{
$this->personId = $params['personId'];
}
public function fill(): array
{
$person = Person::find($this->personId);
return [
'year' => $person->birthdate->format('Y'),
];
}
use Illuminate\Support\Collection;
public function submit(Collection $state): void
{
User::create($state->all());
toast()
->success('Thanks for submitting the form! (Your data isn\'t stored anywhere.')
->push();
}
public function getErrorMessages(): array
{
return [
'email.' => 'Your age must be a number',
];
}
use Closure;
use Livewire\Component;
use App\Models\User;
public function submit(Component $livewire, User $model, Collection $state, Closure $close, Closure $forceClose): void
{
$model
->fill($state->except('password'))
->save();
if ($state->has('password')) {
$model->update(
$state->only('password')->all()
);
}
/* Close current actionable */
$close();
/* Close another actionable */
$close('another-peer-actionable');
/* Close all open actionables */
$forceClose();
}
public User $user;
public string $x = '';
public function mount(array $params, User $model): void
{
$this->user = $model;
$this->x = $params['x'];
}
public function getFormSchema(): array
{
return [
Hidden::make('user_id')->default($this->user->id)
];
}
public function onOpen(): void
{
// ...
}
public User $user;
public array $prefilledValues = [];
public function onOpen(array $eventParams, self $formClass): void
{
$formClass->user = User::find($eventParams[0]);
$formClass->prefilledValues['type'] = $eventParams[1];
}
js
module.exports = {
content: [
'./vendor/ralphjsmit/tall-interactive/resources/views/**/*.blade.php',
// All other locations
],
///