Seperti yang disebutkan dalam dokumentasi:
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.
argumen yang sama tersedia untuk setFetchMode
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
Saya akan menerapkan ini sesuai:
Pertama tambahkan properti $ctorArgs ke \Core\Model
dengan nilai default null
.Diikuti dengan mengganti setFetchMode saat ini panggilan
if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);
Dan terakhir tambahkan properti $ctorArgs ke \App\Models\Admin\Photo
dengan nilai default array("picture")
.
Ini akan memberi tahu kode bahwa konstruktor Anda mengharapkan parameter $picture .
Saya akan berpikir untuk menggunakan konstanta daripada properti, tetapi itu tergantung pada bagaimana Anda memutuskan untuk mengimplementasikannya.