我想知道是否有人可以帮助我。我是PHP OOP的新手,想要使用对象的一些指导。
我正在创建一个登录脚本,下面提到的函数都来自类文件。
Class USER{
public function userLogin($username,$password)
{
$statusY = "Y";
$stmt = $this->connection->prepare("SELECT * FROM tbl_users WHERE user_name=:userName LIMIT 1");
$stmt ->execute(array(":userName"=>$username));
$row = $stmt ->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
$this->_user = $row; // Assign user details
$_SESSION['userSession'] = $row['user_id'];
}
}
public function getUser()
{
return $this->_user;
}
好的,我有getUser()函数,然后分配$ this-> _user = $ row,这样我就可以从数据库中检索用户信息。现在我想从中做出一些事情,但不知道如何去做。
我如何在同一类中的另一个函数中调用$ row [' user_id']?
所以基本上
public function test()
{
$user_id = $this->_user(user_id);
$username = $this->_user(username);
}
我该如何正确地做到这一点?
此外,如果我想在用户主页等页面中调用该信息。
$user_home = new USER();
$userID = $user_home->getUser(user_id);
echo $userID;
如果有人能给我一些关于如何向前推进的指导,我将不胜感激。感谢
答案 0 :(得分:1)
让我们从关于方法和类命名的基本陈述开始:我不会重复这个课程'主题一遍又一遍(在上面的例子"用户"),而只是从方法名称中删除它:
class User
{
private $info= array();
private $authenticated= FALSE;
public function login ($username, $password)
{
// do your stuff
...
// set in case that user name and password have been found
$this->info= $row;
$this->authenticated= TRUE;
}
public function isAuthenticated ()
{
return $this->authenticated;
}
/**
* returns all info from a given user
*/
public function get ()
{
return $this->info;
}
/**
* returns a single field
*/
public function getField ($fieldName) {
if (isset($this->info[$fieldName]) {
return $this->info[$fieldName];
} else {
return FALSE;
}
}
}
使用getField(FIELD)
方法仅返回用户行的单个元素,并get()
返回所有值。
$user= new User();
$user->login ($username, $password);
if ($user->isAuthenticated()) {
$home= $user->getField('home');
print sprintf('%s\'s home is %s', $username, $home);
}
建议为用户数据库表创建一个类(即class UserModel
),另一个用于处理使用class UserAuth
类的用户函数(即UserModel
) 。这样可以更轻松地交换基础身份验证源。
答案 1 :(得分:0)
<div ng-controller="DropdownCtrl as vm">
<select name="singleSelect" ng-model="vm.data"
ng-click="vm.loadTenantList()">
<option ng-repeat="tenant in vm.tenants" >{{tenant.name}}</option>
</select><br>
</div>