如何解决此 Codeigniter-4 登录控制器问题?

Posted

技术标签:

【中文标题】如何解决此 Codeigniter-4 登录控制器问题?【英文标题】:how do I fix this Codeigniter-4 login controller issue? 【发布时间】:2020-06-02 06:03:51 【问题描述】:

我正在尝试在 Codeigniter-4 中创建基于电话和密码的登录,我已经创建了表单,这是我的控制器

  public function auth()

    $model = new LoginModel();
    $user_phone = $this->request->getVar('user_phone');
    $password = $this->request->getVar('password');

    $result = $model->where("user_phone", "$user_phone");


if($result->numRows === 1)
    $user = $result->row_array();
    if($this->password->verify_hash($password, $user['password']))
        unset($user['password']);

        return $user;

     else 
       echo ('login');
    
 else 
  echo ('login');

这是我的模特

class LoginModel extends Model

    protected $table = 'users';

    protected $allowedFields = ['username', 'password', 'user_phone'];


这是我的看法

        <?php
        $req_c       = $member["username"];


        ?>


          <div class="app-body__item-content padded">

              <div class="panel-body"><?= $req_c ?></div>

             ?>

          </div>

       <?php endforeach; ?>
       <?php endif; ?>

但它没有在视图中返回用户详细信息

【问题讨论】:

对于初学者,您还没有显示调用视图的位置。因此,如果您需要任何帮助,至少需要这样做。 您仍然没有显示您调用视图的位置。您的查看代码不完整,您正在使用 foreach ???在哪里???它不在视图中。 【参考方案1】:

我认为因为您在这里使用双引号,它会将您的 $user_phone 变量作为字符串

 $result = $model->where("user_phone", "$user_phone");

应该是这样的

 $result = $model->where("user_phone", $user_phone);

或者这个

 $result = $model->where(["user_phone"=> $user_phone]);

【讨论】:

以上是关于如何解决此 Codeigniter-4 登录控制器问题?的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 4 如何在视图中调用控制器方法?

没有登录会话,任何人都无法访问 codeigniter 4 中的控制器

如何在 Codeigniter 4 中扩展控制器?

如何在 CodeIgniter 4 中使用子目录控制器?

有啥好主意吗? Codeigniter 4,如何制作:View上没有请求,只有Controller上?

带有 Angular 的 Codeigniter 4 API:“http://localhost:4200”已被 CORS 策略阻止