2015-06-01 185 views
-1

我有我的代碼有問題,當我嘗試使用公共職能setDatos($ aDatosPro){我該如何解決這個錯誤,這個PHP?

我有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; 

    } 
} 
?> 

而且我有這樣的錯誤:

在/var/www/html/PROJECTS/dailytasks/controller/controllerProyectos.php:17

消息'class daoProyectos的對象無法轉換爲字符串'的異常'ErrorException'

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

郵編因爲錯誤指向此文件。 – alexandreferris

+0

我編輯,這是controllerProyectos.php –

+0

@JoseManuelAbarcaRodríguez我不知道我的頭在哪裏..對不起,我編輯,是「公共函數setDatos($ aDatosPro)」 –

回答

1

如果你看看更仔細地在這裏;

public function setDatos($aDatosPro){ 

    $obj = $aDatosPro->resultSelect(); 

    foreach($this->$obj as $sKey=>$oValue){ 

您設置resultSelect返回值OBJ $(局部變量),但在$做一個foreach這個 - > OBJ這是您尚未設置對象的屬性。

嘗試將其更改爲;

public function setDatos($aDatosPro){ 

    $this->obj = $aDatosPro->resultSelect(); 

    foreach($this->$obj as $sKey=>$oValue){ 

或完全取出var如下;

public function setDatos($aDatosPro){ 

    foreach($aDatosPro->resultSelect() as $sKey=>$oValue){ 

希望這有助於`/ controllerProyectos.php`的

+0

我做過foreach($ aDatosPro-> resultSelect()爲$ sKey => $ oValue){我沒有任何錯誤,謝謝 –