当我尝试使用公共函数setDatos($ aDatosPro){
时,我的代码出现问题我有controllerProyectos.php
:
<?php
require "dao/daoProyectos.php";
class NombreProyecto {
public function getProyectos() {
$aTransfer = new daoProyectos();
$this->setDatos($aTransfer);
}
public function setDatos($aDatosPro){
$obj = $aDatosPro->resultSelect();
foreach($this->$obj as $sKey=>$oValue){
$list[] = array('Id' => $oValue->getId(),'nombre_proyecto' =>$oValue->getNombreProyecto()/*,'state' =>$oValue->getState()*/);
}
return $list;
}
}
?>
我有这个错误:
例外&#39; ErrorException&#39;带有消息&#39;类daoProyectos的对象无法转换为字符串&#39;在/var/www/html/PROJECTS/dailytasks/controller/controllerProyectos.php:17
dao/daoProyectos.php
:
<?php
require "transferDao/daoTransferProyectos.php";
class daoProyectos{
private function sqlConnection(){
try {
$servername = "localhost";
$username = "root";
$password = "123asd";
$conn = new PDO("mysql:host=$servername;dbname=bd_actividades", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
}
public function resultSelect(){
$aObjects=array();
$db = $this->sqlConnection();
$stmt = $db->prepare("SELECT pro_id, pro_nombre FROM act_proyecto");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row) {
$aTransfer = new daoTransferProyectos();
$aTransfer->setId($row['pro_id']);
$aTransfer->setNombreProyecto($row['pro_nombre']);
$aObjects[]=$aTransfer;
}
return $aObjects;
}
}
?>
答案 0 :(得分:1)
如果你在这里看得更仔细;
File
您正在将resultSelect返回值设置为$ obj(local var),但是在$ this-&gt; obj上执行foreach,这是您尚未设置的对象的属性。
尝试将其更改为;
public function setDatos($aDatosPro){
$obj = $aDatosPro->resultSelect();
foreach($this->$obj as $sKey=>$oValue){
或完全取出var如下;
public function setDatos($aDatosPro){
$this->obj = $aDatosPro->resultSelect();
foreach($this->$obj as $sKey=>$oValue){
希望这有帮助