我有三个模型(表示数据库表),它们基本上有setter和getter方法。我有一个具有动作方法的服务类。在其中一个服务类方法中,我正在编写一个连接两个表的查询。我想知道如何为查询结果创建单个对象。
例如:
我有两个模型文件m1.php和m2.php
m1.php
class M1Model {
public $id;
public $name;
public function setM1ID($id) {
$this->id = $id;
}
public function setM1Name($name) {
$this->name = $name;
}
public function getM1ID() {
return $this->id;
}
public function getM1Name() {
$this->name;
}
}
m2.php
class M2Model {
public $id;
public $cat_name;
public $m1_id;
public function setM2ID($id) {
$this->id = $id;
}
public function setM2CatName($cat_name) {
$this->cat_name = $cat_name;
}
public function setM1ID($m1_id) {
$this->m1_id = $m1_id;
}
public function getM2ID() {
return $this->id;
}
public function getM2CatName() {
return $this->cat_name;
}
public function getM1ID() {
return $this->m1_id;
}
}
service.php
include m1.php;
include m2.php;
class DataService {
function __construct() {
$m1 = new M1Model();
$m2 = new M2Model();
}
function getAllData() {
$query = "database query using join";
//Here I want to return object (Not generic object)
return $object;
}
}
从getAllData(),我想返回单个对象和非泛型对象。我该怎么做?
答案 0 :(得分:0)
使用PDOStatement::fetch(PDO::FETCH_OBJ)
或mysqli_fetch_object()
获取查询结果。
请参阅PHP文档:
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
答案 1 :(得分:0)
如果你想要的是一个DataService对象,你可以把你的$查询放在DataService构造函数中......