2

我正在尝试将登录到我网站的人的 ID 传递给我。我正在使用 Auth 登录 cakephp。那么谁能告诉我如何在登录期间传递值并在主页上检索它?我是 cakephp 新手。

这是我尝试过的。

应用程序控制器.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')
    )
);

成员控制器.php

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

主页.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')); 
?>
4

1 回答 1

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,该方法由AppController扩展 扩展FooBarsController

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

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

在您看来,您现在可以执行以下操作:

printf('Welcome %s', $userName);
于 2013-01-28T09:42:14.703 回答