将变量从控制器传递给查看器

时间:2018-10-29 17:35:00

标签: php model-view-controller

我在这个问题上有些挣扎,我使用了几年前构建的定制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和$ inputs生成它,则返回空字符串。

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 :(得分:0)

您可以使用UndecidableInstances函数,该函数将变量从数组导入到当前符号表中。 示例:

extract