Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lỗi chung:không thể gọi hàm tạo lớp '

Như đã đề cập trong tài liệu:

public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )

ctor_args

Arguments of custom class constructor when the fetch_style parameter is PDO::FETCH_CLASS.

đối số tương tự có sẵn cho setFetchMode

public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )

Tôi sẽ triển khai điều này cho phù hợp:

Đầu tiên hãy thêm thuộc tính $ ctorArgs thành \Core\Model với giá trị mặc định là null . Tiếp theo bằng cách thay thế setFetchMode hiện tại cuộc gọi

if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);

Và cuối cùng thêm thuộc tính $ ctorArgs tới \App\Models\Admin\Photo với giá trị mặc định là array("picture") .

Điều này sẽ cho mã biết rằng phương thức khởi tạo của bạn đang mong đợi tham số $ picture .

Tôi sẽ nghĩ đến việc sử dụng một hằng số thay vì một thuộc tính, nhưng điều đó phụ thuộc vào cách bạn quyết định triển khai điều này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm MySQL LOG2 () - Trả về Logarit cơ số 2 của một giá trị

  2. Hàm MySQL LN () - Trả về Logarit tự nhiên của một số

  3. Kích thước VARCHAR của MySQL?

  4. CHỌN COUNT () so với mysql_num_rows ();

  5. Chuẩn hóa tất cả ký tự UTF8 thành định dạng chuẩn nhất