Передать переменную от контроллера к зрителю - PullRequest
0 голосов
/ 29 октября 2018

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

Это пример контроллера модуля:

    <?php
require_once("lib/controllers.php");

class defaultpage extends controllers
{   

    public $varx;
    public function index()
    {

            global $website_name;
            $filename = pathinfo(__FILE__, PATHINFO_FILENAME); // Obter o nome do ficheiro

            if(isset($_SESSION['username'])){

                $this->header("$website_name Banners");
                $this->navbar();
                $this->displayb("backoffice/modules/$filename/view/$filename.tpl.php",$image);
                $this->footer();

            }else{

                header("Location: /", true, 301);
                exit();
            }


    }

}


#######################################################################################
# CONFIGURAR PÁGINA EDITAR
#######################################################################################
if(isset($fetch)){

}else{
    $fetch = NULL;
}

$image = 
[   // 1º IMAGEM  2º LABEL 3ºName 4º ID  

    [
        "../../".$fetch['imagem'],"Imagem(1000 x 940px)","fileToUpload","fileToUpload"
    ]

];

$textarea = 
[  // 1º Label 2º Name 3º Value

    [
        "Conteudo PT","conteudo",utf8_decode($fetch['conteudo'])
    ],

    [
        "Conteudo EN","conteudo_en",utf8_decode($fetch['conteudo_en'])
    ]

];

$input = 
[   // 1º Label 2º Name 3 º Value

    [
        "Link (Opcional)","link",utf8_decode($fetch['link']),"text"
    ]

];
#######################################################################################            

$module = new defaultpage;


?>

Пока все хорошо, если я пытаюсь получить доступ к этому контроллеру с другого контроллера, он будет работать успешно, в противном случае, если в этом средстве просмотра я попытаюсь получить доступ к $ image, $ textarea и $ input для генерации, я получу пустые строки.

Notice: Undefined variable: image in /home/gmtemhic/test-domain.xyz/backoffice/modules/banner/view/banner.tpl.php on line 32

Это часть файла представления контроллера, который я разместил выше:

require_once("backoffice/modules/$table/controller/$table.php");
var_dump($image);
print_r($image);

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

1 Ответ

0 голосов
/ 29 октября 2018

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

$variables = [
    'color' => 'red',
    'width' => 100,
    'height' => 50
];

extract($variables);
echo 'Color: ' . $color;
echo 'Size: ' . $width . 'x' . $height;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...