如何在CakePHP中从控制器向视图传递$$变量?
在AppController中:如何在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
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>