سلام خدمت شما استاد موسوی و کاربران محترم سایت...ببخشید یک مشکلی واسم پیش امده:
ارور اینه:
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 ساخته میشه و...
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟