2016-06-13 5 views
0

자동으로 yii2에서 내 동작 방법을 실행하고 싶습니다. 콘솔/컨트롤러에 코드를 삽입했습니다.작업 스케줄러를 사용하여 yii2 스크립트 실행

MailController.php

<?php 

namespace console\controllers; 

use Yii; 
use yii\console\Controller; 
use Swift_TransportException; 

class MailController extends Controller 
{ 
    public function actionSend() 
    { 
     $mail = Yii::$app->mailer->compose() 
      ->setFrom('[email protected]') 
      ->setTo('[email protected]') 
      ->setSubject('Testing'); 
     try 
     { 
      $mail->send(); 
     } 
     catch (Swift_TransportException $ste) 
     { 
      echo 'error'; 
     } 
    } 
} 

?> 

그럼 내가 작업 스케줄러에서 작업 메뉴에서이 구성합니다 :

프로그램/스크립트 : C : \ XAMPP의 \ PHP는 \의 php.exe가

를이 코드입니다

추가 인수 (선택 사항) : -f C : \ XAMPP \ htdocs를 \ 바루 \ 고급 \ 콘솔 \ 컨트롤러 \ MailController.php

I 조치를 보내 실행할

. 하지만 작업 스케줄러의 결과는 0xFF이며 이메일을받지 못합니다. 뭐가 문제 야? 직접

C:\xampp\php\php.exe c:\path\to\your\application\yii mail/send 

또는 당신은 YII 호출

c:\path\to\your\application\yii.bat mail/send 

, 그리고 컨트롤러 스크립트를

답변

1

당신은 이런 식으로 컨트롤러 액션을 호출해야합니다. 컨트롤러와 동작 (경로)은 단지 매개 변수 일뿐입니다.

here 또는 자세한 내용은 guide 참조하십시오.

+0

이 명령을 작업 스케줄러에 넣을 위치를 알려주십시오. 대신 메일을 보내려고하지 않고 테이블에 행을 삽입해야합니다. 콘솔에서 컨트롤러/액션을 실행하면 레코드를 삽입 할 수 있습니다. 그러나 작업 스케줄러를 통해 실행할 때 레코드가 데이터베이스에 저장되지 않습니다. 작업 스케줄러에는 두 개의 필드가 있습니다. 프로그램 및 인수. 당신의 대답을 어디에 넣어야합니까? 나는 스케줄러에 어떤 종류의 오류도 직면하고 있지 않다. 완료된 작업이 표시됩니다. – Pravin