질문을 삭제하지 말아주세요.!
 
1
0
-1

혼자 공부하면서 뭐라도 만들어보려고 하는 중인데요

ajax로 데이터 넘기고서

$email = $request->input('email');
$name = $request->input('name');
$nickname = $request→input('nickname');

이런식으로 받고 있는데 혹시 한번에 받는 방법있을까요


기존에 스프링으로 구현할 때는 저렇게 번거롭게 안하고

받는 메소드의 인자에 dto넣어서 한번에 받았던거 같은데요..


    CommentAdd your comment...

    2 answers

    1.  
      2
      1
      0

      저같은 경우는 request class 를 만들어서 진행했었습니다.

      https://laravel.kr/docs/5.6/validation#form-request-validation


        CommentAdd your comment...
      1.  
        1
        0
        -1

        Request::all() 함수를 이용하면, 전체 요청을 연관 배열(hash map)로 얻을 수 있습니다. Dto를 만들면 더 좋구요.


        use \Illuminate\Http\Response;
        class FooController extends \App\Http\Controllers\Controller
        {
            public function createUser(FooRequest $request, UserService $userService)
            {
                $userDto = $request->getUserDto();
                $userService->createUser($userDto);
        
        
                return new Response('', Response::HTTP_OK);
            }
        }
        
        
        class FooRequest extends \App\Http\Requests\Request
        {
            public function rules()
            {
                return [
                    // 유효성 검사 규칙
                ];
            }
        
        
            public function getUserDto()
            {
                return UserDto::createFromRequest($this->all());
            }
        }
        
        
        class UserDto
        {
            private $email;
            private $name;
            private $nickName;
        
        
            public function __construct(
                string $email = null,
                string $name = null,
                string $nickName = null
            ) {
                $this->email = $email;
                $this->name = $name;
                $this->nickName = $nickName;
            }
        
        
            public static function createFromRequest(array $request)
            {
                return new static(
                    $request['email'] ?? null,
                    $request['name'] ?? null,
                    $request['nickname'] ?? null
                );
            }
        
        
            public function getEmail()
            {
                return $this->email;
            }
        
        
            // ...
        }
          CommentAdd your comment...