2016-08-20 2 views
0

저는 이미지 업로드를 위해 CakePHP 3.2 및 proffer 플러그인을 사용하고 있습니다.이벤트에서 Cakephp 3의 인증 구성 요소를 사용하는 방법

저장하기 전에 이미지를 업로드하고 이미지 이름을 변경하기 위해 proffer 플러그인의 기본 경로를 다시 작성하고 싶습니다.

전문가의 설명서에 따라 github에서. 나는 이것이 내가

$newFilename = $this->Auth->user('id').'-'.$event->subject()->get('id') . '_' . Inflector::slug($event->subject()->get('name')) . date('ymdhis') . $ext; 

한 일이다 그러나 이것은 Auth는 사용할 수 없습니다주는 오류가 지금은

$this->Auth->user('id').'-'.$row('id').date('dmyhis').ext 

같은 파일의 이름을 변경하려는

/src/Event에서 이벤트를 만들었습니다 이리. 컨트롤러 외부에 Auth Component을 사용할 방법이 있습니까?

+1

당신은 인증 구성 요소를 필요로하지 않지만, 세션 데이터입니다. http://book.cakephp.org/3.0/en/development/sessions.html – Salines

답변

0

케이크 3.x를 가진 이후, 당신은이를 사용한다 :

$this->request->session()->read('Auth'); 

을 그것을

debug($this->request->session()->read('Auth')); 

[ 
    'id' => (int) 2, 
    'username' => 'admin', 
    'nice_name' => 'Tommy Do', 
    'first_name' => 'Huy', 
    'last_name' => 'Đỗ', 

    ...//and more info in UserTable 
] 

그리고 접근을 디버깅 할 때 각 요소에.

$this->request->session()->read('Auth.nice_name'); 

인쇄 :

Tommy Do 

은 당신이 도움이되기를 바랍니다 : D

1

세션을로드하여 로그인 한 사용자 ID에 액세스 할 수 있습니다. 참고로

use Cake\Network\Session; 
$session = new Session(); 
$userData = $session->read('Auth.User.id'); 

사용이 : Reading & Writing Session Data

관련 문제