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.