Open3
Livewire Code Tips
Laravel Livewire を使用する際に、ある程度自分でルールを決めとかないと破綻するような気もする。
そのルールはプロジェクト固有のものではなく、他の人とも共有できるのではないかと思い、ここでTipsとして残していく。
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);
}
ちなみに、リクエストクラスを作る際は Actions/CreatePostRequest
と区切ってる。