Cześć, stworzyłem walidację formularza rejestracji a następnie dodaję dane do bazy danych. Wszystko działa poprawnie, tylko mam pytanie czy poniższy kod jest poprawny bo mam wątpliwości. Funkcja store()
moim zdaniem powinna odpowiadać za jedną rzecza a ta funkcja haszuje hasło, przekierowuje i dodaje dane do bazy więc łamie zasadę SOLID.
Kontroler
class RegistrationController extends Controller
{
public function index()
{
return view('registration');
}
public function store(RegistrationRequest $request)
{
$user = $request->validated();
$user['password'] = Hash::make($user['password']);
return redirect()->route(
'index.store',
['registration' => User::create($user)]
)->with('success', 'Success registration');
}
}
Model
class User extends Model
{
use HasFactory;
protected $fillable = [
'login', 'password', 'email'
];
public function opinions()
{
return $this->hasMany(Opinion::class);
}
}
requests
class RegistrationRequest extends FormRequest
{
public function rules()
{
return [
'login' => 'required|min:3|max:12|unique:users,login|regex:/^[a-zA-z-0-9]+$/u',
'email' => 'required|email|unique:users,email',
'password' => 'required|string|min:3|max:12',
'password_repeat' => 'required|same:password'
];
}
}
route
Route::get('registration', [\App\Http\Controllers\RegistrationController::class, 'index'])->name('index');
Route::post('registration', [\App\Http\Controllers\RegistrationController::class, 'store'])->name('index.store');