livewireがまだ全く理解できないのですが、form を作ってデータを sqlite に記録してみたいと思います。
composer create-project --prefer-dist laravel/laravel livewire-example
プロジェクトディレクトリに移動します。
cd livewire-example
livewireのインストール。
composer require livewire/livewire
.env の編集。
DB_CONNECTION=sqliteDB_DATABASE=/home/user/livewire-example/database/database.sqlite
SQLiteデータベースファイルの作成。
touch database/database.sqlite
モデルとマイグレーションの作成。
php artisan make:model Item -m
<?php
use Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;
class CreateItemsTable extends Migration{ public function up() { Schema::create('items', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); }); }
public function down() { Schema::dropIfExists('items'); }}
マイグレーションの実行。
php artisan migrate
app/Models/Item.php を編集します
<?php
namespace App\Models;use Illuminate\Database\Eloquent\Model;
class Item extends Model{ protected $fillable = ['name'];}
Livewireコンポーネントの作成。
php artisan make:livewire ItemCreate
app/Livewire に ItemCreate.php が作成されるので以下のように編集。
<?php
namespace App\Livewire;
use Livewire\Component;use App\Models\Item;
class ItemCreate extends Component{ public $name;
public function render() { return view('livewire.item-create'); }
public function saveItem() { $this->validate([ 'name' => 'required', ]);
Item::create([ 'name' => $this->name, ]);
$this->reset('name'); }}
resources/views/livewire にある item-create.blade.php を以下のように編集。
<div> <form wire:submit.prevent="saveItem"> <input type="text" wire:model="name" placeholder="アイテム名"> @error('name') <span>{{ $message }}</span> @enderror <button type="submit">保存</button> </form></div>
resources/views/welcome.blade.php を以下のように編集。
<!DOCTYPE html><html lang="ja"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Livewire Example</title> @livewireStyles</head><body> <livewire:item-create /> @livewireScripts</body></html>
sqlite3 のインストール。
sudo apt updatesudo apt install sqlite3
PHP SQLite3拡張機能のインストール。
sudo apt install php-sqlite3
Apache の再起動。
sudo systemctl restart apache2
php artisan serve
アドレスバーから http://localhost:8000 にアクセスします。
そうするとデータ入力画面が表示されるので、データを入力して保存ボタンを押すと sqlite に記録されます。