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

https://www.xpressengine.com/index.php?mid=learn&search_target=tag&search_keyword=laravel&document_srl=23061320

안정수님 강좌보고 따라 연습하고있습니다.

시간40:24 에 글생성하기가 안됩니다,

라라벨 프레임웍 5.4.19 버전입니다.


에러화면

PostController.php 파일


create.blade.php 파일

@extends('layouts.master')

@section('content')
<h2>글 생성하기</h2>
<form method="post" action="{{ route('post.index') }}" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label name="title" for="title">제목</label>
<input type="text" name="title" class="form-control" value=""/>
</div>
{{--<div class="form-group">--}}
{{--<label name="file" for="file">파일</label>--}}
{{--<input type="file" name="thumbnail" value=""/>--}}
{{--</div>--}}
<div class="form-group">
<label name="body" for="body">내용</label>
<textarea name="body" class="form-control"></textarea>
</div>
<div class="form-group">
<input type="submit" value="생성하기" class="btn btn-primary">
</div>
</form>

{{--@if($errors->any())--}}
{{--<div class="alert alert-danger" role="alert">--}}
{{--<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>--}}
{{--<span class="sr-only">Error:</span>--}}
{{--@foreach ($errors->all() as $message)--}}
{{--{{ $message }}--}}
{{--@endforeach--}}
{{--</div>--}}
{{--@endif--}}
@stop


    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      라라벨 버전이 올라가면서 리퀘스트를 다루는 방법이 달라져서 그렇습니다.

      Input::get('title'); 과 같이 작성한 부분들을 $request→input('title'); 같은 식으로 바꾸시면 될겁니다. 


      라라벨 5.4 에서 리퀘스트를 다루는 방법은 매뉴얼 https://laravel.kr/docs/5.4/requests 을 참고해보세요.

      1. ddammo55

        빠른답변 감사드립니다.

        수정 후 데이터가 정상적으로 입력이 됩니다.


      2. ddammo55

        이번에는 업데이트가 안됩니다.

        문법의 문제인거 같은데 어디서 무엇을 고쳐야 할지 난감합니다.

        한번만 더 양해구하고 부탁드립니다.


      3. 이현석

        에러메시지에 App\Http\Controller\Validator 클래스를 찾을 수 없다고 나온 게 보이시지요? 

        Validator 클래스를 사용해야 하는데 App\Http\Controller\Validator 클래스를 사용해서 발생한 문제입니다. 해결 방법은 두가지 입니다.

        1. Validator::make(... 앞에 `\`를 붙인다.

          \Validator::make( ...
        2. 파일 상단에 (namespace 구문 하단에) use Validator; 를 추가해준다.

          <?php
          
          
          namespace App\Http\Controllers;
          
          
          use Validator;

        왜 코드에는 Validator 라고만 쓰여있는데 실제로는 App\Http\Controller\Validator 클래스를 찾은것인지, \ 를 붙이는 것과 use 구문을 사용하는 것의 차이 무엇인지에 대해서는 'php 네임스페이스'를 검색해서 찾아보시면 도움이 될 것입니다. 네임스페이스를 아셔야 라라벨을 잘 쓰실 수 있습니다.

        Validation 관련해서는 매뉴얼의 Validation 부분을 참고하세요. 특히 위와 같이 사용하는 방법은 Validation 부분 중에서도 수동으로 Validator 생성하기 부분이 도움이 되실 겁니다.

        위의 문제를 해결해도 또 처음에 올리셨던 질문과 똑같이 App\Http\Controller\Input 클래스를 찾을 수 없다는 에러가 발생할 것입니다. Input::all() 때문입니다. 이부분도 앞서 답변 드린 것 처럼 $request->all()로 바꿔주셔야 할 겁니다.

      4. ddammo55

        이현석님 답변 너무나 감사드립니다. ^^b

        제대로 작동하였습니다. 어떻게 간지러운 부분을 그렇게 잘 아시는지요 ...

        이제 다시 반복해서 이해하도록 공부 해야겠습니다.

        네임스페이스 공부하러 가겠습니다. ~



      CommentAdd your comment...