CakePHP: лучший способ назвать действие другого контроллера с массивом как параметр?

Так как Outlook использует Word в качестве почтового редактора (Outlook 2007, Outlook, 2003 может быть настроен для использования Word) Вы могли использовать функцию AutoCorrect для применения простого форматирования к электронной почте. __text__ инициирует курсив, и **bold** инициирует полужирный. Список может быть создан автоматически при вводе - или 1.

, Другая опция могла бы состоять в том, чтобы выполнить макрос VBA при отправке электронного письма, которое преобразовывает форматирование Скидки с цены в (X) HTML.

27
задан 3 revs, 3 users 96% 28 May 2018 в 22:20
поделиться

3 ответа

Можно ли вам переместить логику из второго контроллера в его модель, а затем сделать что-то подобное в действии вашего первого контроллера?

$var = ClassRegistry::init('SecondModel')->myMethod($array);
$this->set(compact('var'));

Затем в представлении для первого действия контроллера, вы можете использовать эти данные.

Я всегда стараюсь сохранить методы контроллера для действий, которые вы можете выполнить через браузер, добавить как можно больше логики в свои модели, вызвать методы сторонних моделей из действий контроллеров, которым нужны данные из моделей, которые не являются не являюсь моделью для этого контроллера, затем использую эти данные в моих представлениях, и если это данные, которые часто просматриваются, я создаю для них элемент.

25
ответ дан 28 November 2019 в 04:50
поделиться

Я бы не советовал использовать метод requestAction, а лучше импортировал и создавал экземпляр необходимого контроллера.

В документе CakePHP говорится о requestAction, которое:

«Редко подходит для а контроллер или модель "

http://book.cakephp.org/view/434/requestAction

После того, как вы импортировали и загрузили контроллер, вы можете вызвать любой метод этого контроллера с его параметрами.

<?php
  //Import controller
  App::import('Controller', 'Posts');

  class CommentsController extends AppController {
    //Instantiation
    $Posts = new PostsController;
    //Load model, components...
    $Posts->constructClasses();

    function index($passArray = array(1,2,3)) {
      //Call a method from PostsController with parameter
      $Posts->doSomething($passArray);
    }
  }
?>
29
ответ дан 28 November 2019 в 04:50
поделиться

As of CakePHP 1.2.5, you should be able to pass various parameter types through the second parameter in requestAction(). e.g.:

$this->requestAction('/users/view', array('pass' => array('123')));

Then in the UsersController:

function view($id) {
    echo $id; // should echo 123 I believe, otherwise try $this->params['pass'].
}

Instead of using 'pass' above, you can alternatively try 'form' and 'named' to pass form/named parameters respectively.

3
ответ дан 28 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: