Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CakePHP中从控制器向视图传递$$变量?_Php_Cakephp_Variables - Fatal编程技术网

如何在CakePHP中从控制器向视图传递$$变量?

如何在CakePHP中从控制器向视图传递$$变量?,php,cakephp,variables,Php,Cakephp,Variables,在AppController中: function beforeFilter() { $company = 'name of Company'; $this->set(compact('company')); } 在控制器类中: function companyinfo() { $logo = '<div><?php $this->Html->image('logo'); ?></div>'; $wel

在AppController中:

function beforeFilter() {

    $company = 'name of Company';

    $this->set(compact('company'));

}
在控制器类中:

function companyinfo() {
    $logo = '<div><?php $this->Html->image('logo'); ?></div>';
    $welcome = 'welcome to $$company!';

    $this->set(compact('logo','welcome'));
}

function beforeFilter() {
    parent::beforeFilter();
}
函数companyinfo(){
$logo='';
$welcome='欢迎来到$$公司!';
$this->set(紧凑型('logo','welcome');
}
函数beforeFilter(){
父::beforeFilter();
}
在视图类中:

<html>
    <body>
        <?php echo $logo; ?>
        <?php echo $welcome; ?>
    </body>
</html>

当您使用
$this->set(compact('company')时,从AppController通过控制器传递变量后,它不会在视图中应答变量。

1),它没有设置在任何控制器中使用的变量-它将
$company
传递给视图

2) 您试图使用助手(仅在视图中可用)以字符串形式编写PHP代码

$logo='';
3) 想要将数据从AppController传递到控制器以供查看是不寻常的

您可能想做的事情如下:

//App Controller 
function beforeFilter() {
    $company = 'name of Company';
    $this->set(compact('company'));
}

//Controller
function companyinfo() {
    $logo = 'logo';
    $this->set(compact('logo'));
}

//Layout file (or view file, but I assume it's layout since you're getting data in the AppController)
<?php
echo '<div>' . $this->Html->image($logo) . '</div>';
echo "Welcome to " . $company;
//应用程序控制器
函数beforeFilter(){
$company='公司名称';
$this->set(紧凑型(“公司”);
}
//控制器
函数companyinfo(){
$logo='logo';
$this->set(紧凑型('logo'));
}
//布局文件(或视图文件,但我假设它是布局,因为您在AppController中获取数据)

要使公司进入视图,如果您希望它在整个站点的所有视图中都可用,可以在appcontroller中设置它;如果您只希望它在您设置它的函数的视图中可用,可以在特定控制器中设置它。无论哪种方式,您都需要正确使用set函数。例如:

$this->set('company','Name of company')

之后,您将能够访问视图中的
$company
变量

echo$公司输出<代码>公司名称

至于你问戴夫的问题:

<?php $welcome = 'Welcome to $$company'; ?> <html><body><?php echo $welcome; ?></body></html>

将写为:

<html><body><?php echo "Welcome to ". $company; ?></body></html>


但是,您应该真正考虑使用cakephp,这样您就不需要在每个视图文件中使用
,,等等。
标记“it not answer variable”是什么意思?这很不清楚。就像它显示空白。。。没有显示变量…为什么称之为“视图类”?一个简单的问题。。在视图中如何:
?我真的不知道你在问什么。
<?php $welcome = 'Welcome to $$company'; ?> <html><body><?php echo $welcome; ?></body></html>
<html><body><?php echo "Welcome to ". $company; ?></body></html>