Open3

Livewire Code Tips

KaiKai

Laravel Livewire を使用する際に、ある程度自分でルールを決めとかないと破綻するような気もする。

そのルールはプロジェクト固有のものではなく、他の人とも共有できるのではないかと思い、ここでTipsとして残していく。

KaiKai

Livewire内でのモデルの取得/生成

Livewire内でのモデルの取得/生成は、アクションと呼び出し、 App\Actions 直下にまとめましょう。

Bad

namespace App\Http\Livewire;

use Livewire\Component;
use App\Models\Flight;

$flight = Flight::create($input);

Good

namespace App\Http\Livewire;

use App\Actions\CreateFlight;

return app(CreateFlight::class)->create($input);
namespace App\Actions;

use App\Contracts\Actions\CreateFlights;
use App\Models\Flight;

class CreateFlight implements CreateFlights
{
    public function create(array $input)
    {
        Validator::make($input, [
          // Do something...
        ])->validate();

        return Flight::create($input);
    }
}
namespace App\Contracts\Actions;

interface CreateFlights
{
    public function create(array $input);
}
KaiKai

ちなみに、リクエストクラスを作る際は Actions/CreatePostRequest と区切ってる。