سلام خدمت شما استاد موسوی و کاربران محترم سایت...ببخشید یک مشکلی واسم پیش امده:
ارور اینه:
Recoverable fatal error: Object of class stdClass could not be converted to string in C:\xampp\htdocs\oop\app\Model\DB.php on line ۱۶۷
لاین ۱۶۷ مربوط به متد bind value هستش ....وقتی remember_token رو توش میریزیم این ارور رو به من میده
remember_token = یک استرینگ از کلمه های تصادفی که در موقع لاگین و موقعی که کاربر گزینه ی remember me رو میزنه ساخته میشه و در داخل دیتابیس ذخیره می شه و یک cookie هم به اسم اون و با مقدار اون درست میشه .وقتی که کاربر بعد یک زمانی مثلا یک روز دیگه میاد به جای تست کردن ای cookei پسوورد و یا کوکی ایمیل همین remember_token چک میشه ......و باقیشم که خودتون میدونین.
و این هم کدهام:
public function update($id, $data)
{
$object = $this->find('id',$id);
if (!$object)
throw new \Exception("This Id Not Exist in the {$this->table}.");
$feildForUpdate = $this->feildForUpdate($data);
$this->stmt = $this->pdo->prepare("UPDATE {$this->table} SET {$feildForUpdate} WHERE id = :id");
$this->bind = array_merge($data, ['id'=>$id]);
$this->bindValue();
return $this->stmt->execute();
}
private function bindValue()
{
foreach ($this->bind as $key => $value) {
$this->stmt->bindValue(":$key" , $value);
}
}
private function feildForUpdate($data)
{
$feild = [];
foreach (array_keys($data) as $name){
$feild[] = "$name = :$name";
}
return join(', ',$feild);
}
}
خب اینا در کلاس DB بودند. متد update و متد bindValue برای بایند کردن اطلاعات و متد fieldForUpdate برای ساختن یک استرینگ برای prepear کردن در متد update هستش.
public static function login($user, $remember = false)
{
Session()->set('email', $user->email);
if ($remember == true){
$rememberToken = random(240);
(new Users())->update($user->id, ['remember_token' => $rememberToken]);
Cookei()->set('remember_token',$rememberToken);
}
return true;
}
و اینم متد login از کلاس Atuth : سشن رو ست کردم به نام ایمیل و با مقدار ایمیل کاربر .بعدش اگر گزینه ی remember me فعال باشه remember Token ساخته میشه و کلاس یوزرز تبدیل به شیء میشه و از اون متد update با ورودی های id کاربر و rememberToken ساخته شده فعال میشه.
کوکی هم که با همین مقدار rememberToken ساخته میشه و...
میتونید بهم بگین اروری که نوشتم چیه؟مشکل چی هستش؟ممنون میشم بهم بگین
شاید پاسخ شما همینجا باشد