PHP code example of putyourlightson / laravel-datastar
1. Go to this page and download the library: Download putyourlightson/laravel-datastar 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/ */
putyourlightson / laravel-datastar example snippets
{{-- datastar/toggle.blade.php --}}
@php
$enabled = $signals['enabled'] ?? false;
@endphp
@patchsignals(['enabled' => $enabled])
@patchelements
<span id="button-text">
{{ $enabled ? 'Disable' : 'Enable' }}
</span>
@endpatchelements
@php
$signals = ['foo' => 1, 'bar' => 2];
@endphp
<div data-signals="{{ json_encode($signals) }}"></div>
{{ datastar()->get('path.to.view') }}
{{ datastar()->get('path.to.view', ['offset' => 10]) }}
{{ datastar()->get('path.to.view', ['offset' => 10], ['contentType' => 'form']) }}
{{ datastar()->post('path.to.view') }}
{{ datastar()->put('path.to.view') }}
{{ datastar()->patch('path.to.view') }}
{{ datastar()->delete('path.to.view') }}
@patchelements
<div id="new">New element</div>
@endpatchelements
@removeelements('#old')
@patchsignals(['foo' => 1, 'bar' => 2])
@executescript
alert('Hello, world!');
@endexecutescript
@location('/guide')
// routes/web.php
use App\Http\Controllers\MyController;
Route::resource('/my-controller', MyController::class);
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
use Putyourlightson\Datastar\DatastarEventStream;
use Symfony\Component\HttpFoundation\StreamedResponse;
class MyController extends Controller
{
use DatastarEventStream;
public function index(): StreamedResponse
{
return $this->getStreamedResponse(function() {
$signals = $this->readSignals();
$this->patchSignals(['enabled' => $signals['enabled'] ? false : true]);
$this->patchElements('
<span id="button-text">' . ($signals['enabled'] ? 'Enable' : 'Disable') . '</span>
');
});
}
}
$this->patchElements('<div id="new-element">New element</div>');
$this->removeElements('#old-element');
$this->patchSignals(['foo' => 1, 'bar' => 2]);
$this->executeScript('alert("Hello, world!")');
$this->location('/guide');
$this->renderDatastarView('datastar.toggle', ['enabled' => true]);
<input data-bind-username>
<button data-on-click="{{ datastar()->get('path.to.view') }}">
Check
</button>
@php
$username = $signals['username'];
@endphp
@php
$signals = datastar()->readSignals();
@endphp