2016-04-20 4 views
0

В моем контроллере приложения:CakePHP3 - компонент Вспышка не работает

class AppController extends Controller 
{ 
    public function initialize() 
    { 
     parent::initialize(); 
     $this->loadComponent('Flash'); 
     $this->loadComponent('RequestHandler'); 
     $this->loadComponent('Cookie'); 
    } 

}

В поставщике обзора функции контроллера:

public function review() { 
     if ($this->request->is('post')) { 
      $userId = $this->request->session()->read('Auth.User.UserId'); 
      $partnerId = $this->request->data('PartnerId'); 
      $content = $this->request->data('Content'); 
      $commentTable = TableRegistry::get('Comment'); 
      $comment = $commentTable->newEntity(); 
      $comment->UserId = $userId; 
      $comment->PartnerId = $partnerId; 
      $comment->Content = $content; 
      $comment->CreatedBy = $userId; 
      $comment->UpdatedBy = $userId; 
      $comment->Source = $this->request->session()->read('Auth.User.LoginBy'); 
      if ($commentTable->save($comment)) { 
       $this->Flash->success('Thank you for review!'); 
      } else { 
       $this->Flash->error('So Sorry your review was failed! Please notify for us to fixed this problem!'); 
      } 
      $this->redirect('provider/' . $partnerId); 
     } 
    } 
  • Когда пользователь представит обзор успех, но флэш Безразлично» т шоу. Тем не менее, я пытаюсь создать еще один проект, следующий за учебником от youtube (https://www.youtube.com/watch?v=eASSNS1f3V4) для тестирования и Flash, работающих в этом проекте.
  • Извините за мой английский, пожалуйста, помогите мне. Большое спасибо!
+0

плз проверить этот адрес HTTP: //book.cakephp. org/2.0/en/core-libraries/components/flash.html –

+0

Спасибо @Tonystark, я решил это. –

ответ

0

Это моя ошибка, потому что я не понимаю торт ясно. Я изменил макет defake Cake, поэтому, когда Flash вызывают HTML в папке Element/Flash/**. Ctp без стиля cake cake. Таким образом, окно сообщения не появляется.

+0

У вас есть проблема? –

0

Я это не ответ на ваш вопрос, но вот несколько советов, чтобы улучшить ваш код:

public function review(){ 
     if($this->request->is('post')){ 
      $commentTable = TableRegistry::get('Comment'); 
      $comment = $CommentTable->newEntity(); 
      $userId = $this->Auth->user('id'); 
      $comment->patchEntity($comment, $this->request->data);  
      $comment->patchEntity($comment, ['CreatedBy' => $userId, 'UserId' => $userId, 'UpdatedBy' => $userId, 'Source' => $userId]); 
      if($commentTable->save($comment)){ 
       //something 
      } else { 
       //something 
      } 
     } 
    } 

Вы можете поместить всю переменную форме в сущности в одно время, если вы используете тот же имя столбца для формы ввода, выполнив следующую строку:

$comment->patchEntity($comment, $this->request->data); 

Если вы хотите получить доступ к пользовательской сессии переменных в контроллере, вы можете использовать это:

$userId = $this->Auth->user('id'); 

Тогда, если вы хотите поставить другие переменный в вашей организации вручную, вы можете сделать так:

$comment->patchEntity($comment, ['CreatedBy' => $userId, 'UserId' => $userId, 'UpdatedBy' => $userId, 'Source' => $userId]); 

Надеется, что это поможет вам

Смежные вопросы