提前致谢
请尽快帮助
我正在尝试实现一种情况,当用户登录时,他被重定向到用户视图,如
本地主机/ cakephp的/用户/视图/ 1
其中1是用户ID 在我看来这里的方法就是我所拥有的
public function view($id = null)
{
$user = $this->Users->get($id, [
'contain' => []
]);
$this->set('user', $user);
}
如果我取出方法参数中的空值 我会得到这样的东西
本地主机/ cakephp的/用户/视图
而我需要这样的东西
本地主机/ cakephp的/用户/ 1
当null值在view方法参数中时,我得到的错误是
使用主键[NULL]
在表“users”中找不到记录所以我填充那里我应该添加到view方法参数中以便能够实现我想要的东西
请帮助我如何实现这个目标
感谢期待
答案 0 :(得分:0)
在连接到DB之前添加额外的检查,
public function view($id = null)
{
if($id){
$user = $this->Users->get($id, [
'contain' => []
]);
$this->set('user', $user);
} else {
$this->Flash->error('Invalid Request / Invalid User');
}
}
如果您想要实现其他目标,请告诉我
答案 1 :(得分:-2)
您也可以为无效请求抛出异常。这样您就不需要在视图中为$ user添加任何检查。
function view($id = null)
{
if(!$id)
{
//Throw exception here
}
$user = $this->Users->get($id, [
'contain' => []
]);
if(!$user)
{
//Throw another exception here
}
$this->set('user', $user);
}