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

작업스케줄링으로 1시간마다 엑셀파일을 만들고 있습니다.

해당 내용이 변경이 되서 그 변경된 내용을 확인하고 싶은데 작업 스케줄링으로 엑셀 파일이 만들어지다 보니

1시간 지난 후에 확인 할 수 있는 것 같습니다.

그게 아니라면 제가 변경된 내용을 시간과 관계없이 파일을 만들고 할 수 있을까요?

그리고 추가로 storage_path를 사용해서 엑셀 파일의 유무를 파악하는데 진짜 위치를 알고 싶습니다.

예를 들어서 storage_path('abc')라고 하면 app 밑에 abc인지 resources쪽인지 public 쪽인지 모르겠습니다.

절대경로라고 하던데 아니면 그냥 /abc 인지 잘 모르겠습니다.

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      # 스케쥴링


      app\Console\Commands\Inspire.php 형태로 command 를 만들고,

      app\Console\Kernel.php 에 등록해 두신건가요?


      이 경우 터미널에서 `php artisan` 명령만 입력하면 등록해두신 명령이 보이고,

      `php artisan inspire` 형태로 바로 실행이 가능합니다만...


      위 케이스가 아니라면 스케쥴링 구성에 관한 자세한 정보가 필요할 것 같고요.



      # 경로


      storage_path('gallery') 는 `프로젝트 루트/storage/gallery` 처럼 서버 절대 경로입니다.


      아래처럼 함수별로 경로를 출력해보시면 이해가 가장 빠르실 것 같네요.


      ```

      <h4>경로</h4>
      <p>base_path(): {{ base_path() }}</p>
      <p>app_path(): {{ app_path() }}</p>
      <p>storage_path(): {{ storage_path() }}</p>
      <p>storage_path('gallery'): {{ storage_path('gallery') }}</p>
      <p>storage_path('gallery' . DIRECTORY_SEPARATOR . 'one'): {{ storage_path('gallery' . DIRECTORY_SEPARATOR . 'one') }}</p>
      <p>public_path(): {{ public_path() }}</p>

      ```


      ```

      base_path(): D:\laravel
      app_path(): D:\laravel\app
      storage_path(): D:\laravel\storage
      storage_path('gallery'): D:\laravel\storage\gallery
      storage_path('gallery' . DIRECTORY_SEPARATOR . 'one'): D:\laravel\storage\gallery\one
      public_path(): D:\laravel\public

      ```



      1. lzao

        PhpStorm에서는 storage 밑에 해당 폴더가 안 보여서 못 찾았습니다.

        터미널열고 들어가니 있네요;;; ㅋㅋㅋ

        답변 감사합니다. 만수무강 하세요~

      2. lzao

        한 가지 더 궁금한게 있는데 
        app\Console\Kernel.php에 등록을 했고 명령어를 확인해보니

        예를 들어서
        excel
           excel:type-a

        이런식으로 되어있으면
        php artisan excel:type-a 이렇게 하면 엑셀 파일이 업데이트 되는건가요?
         

      3. lzao

        해당 명령어 날렸는데 웹상에서 만들어진 거라 터미널에선 권한 에러가 나타나네요..

      4. 빈경윤

        crontab 에서 실행되는 사용자와 현재 터미널에 접속한 사용자가 다른 것 같네요.


        문제가 되는 파일의 권한을 777 로 변경해서 테스트해보세요.

      CommentAdd your comment...