Как получить доступ к функции, определенной в app_controller из CTP - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть функция в app_controller.php. Функция выглядит так:

    function globalSum($Var1,$Var2)
    {
        $Var3 = $Var1 + $Var2;
        return $Var3;
    }

Теперь я хочу получить доступ к этой функции из любого CTP-файла, чтобы получить значение после sum.when, когда я вызываю эту функцию, аргументы будут отправлены из файла ctp. Итак, кто-нибудь может сказать мне, как вызвать эту функцию с аргументами из файла ctp ??

Заранее спасибо ..

1 Ответ

4 голосов
/ 21 сентября 2011

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

В MVC файл ctp является вашим представлением и должен в максимально возможной степени выступать в качестве шаблона, причем любые значения, которые вам нужны в представлении, должны передаваться ему из контроллера.

У вас есть несколько простых решений вашей проблемы.

Нужно просто сделать сложение в представлении:

index.ctp

<?php
echo $var1 + $var2
?>

Для такой простой операции зачем использовать отдельную функцию?

Если ваша функция более сложная, вы можете поместить ее в AppController и затем установить переменную представления в контроллере, которому принадлежит действие. Например:

app_controller.php

<?php
function globalSum($Var1,$Var2) {
    $Var3 = $Var1 + $Var2;
    return $Var3;
}
?>

posts_controller.php

<?php
function index() {
    $this->set('var3', $this->globalSum($var1,$var2));
}
?>

index.ctp

<?php
echo $var3;
?>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...