我试图传递登录我网站的人的身份证。我正在使用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'));
?>
答案 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);