在cakephp中传递变量

时间:2013-01-28 09:26:49

标签: php cakephp

我试图传递登录我网站的人的身份证。我正在使用Auth登录cakephp。那么有谁能告诉我如何在登录过程中传递值并在主页上检索它?我是cakephp的新手。

这就是我的尝试。

app controller.php

class AppController extends Controller {
//...

public $components = array(
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'members', 'action' => 'home',$member['Member']['id']),
        'logoutRedirect' => array('controller' => 'members', 'action' => 'index')
    )
);

MembersController.php

public function home($id = null) {
    $this->Member->id = $id;
}

home.ctp

<div align='center'><h2>Hi user welcome to home page </h2></div>
<?php
 //I am just trying to print the id of the logged in person
echo $this->Form->value('User.id');
?>
<?php
echo $this->Html->link('LogOut',array('controller'=>'users','action'=>'logout')); 
?>

1 个答案:

答案 0 :(得分:3)

echo $this->Form->value('User.id');

FormHelper的一部分。

如果您希望预先填写表单,请使用这些约定。只需创建一个输入字段,如下所示:

echo $this->Form->input('User.id');

如果$this->request->data包含此值($this->request->data['User']['id']),则会自动填写您的表单。

要从AuthComponent检索值,您只需执行$userName= $this->Auth->user('name');之类的操作(只需确保“用户”数据库中存在列“名称”)。

为了将变量传递给您的视图,您可以简单地使用Controller中定义的set方法,该方法由AppController扩展,FooBarsController由{{{}扩展。 1}}。

如果要将此变量设置为视图(如前所述),请使用set

$this->set('userName', $userName);

在您看来,您现在可以:

printf('Welcome %s', $userName);