سلام وقت بخیر
من ثبت نام با موبایل انجام دادم و کد برای کاربر ارسال میشه زمانی که میخام شماره تماس وریفای کنم ارور زیر دارم
Call to a member function activeCode() on null
متد scope وریفای
public function scopeVerifyCode($query , $code, $user)
{
return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first();
}
مشکل از ورودی ها هست ؟ به چه شکل باید بنویسم؟
کدهای کنترلر
public function token(Request $request , User $user)
{
$request->validate([
'token' => 'required'
]);
$status = ActiveCode::verifyCode($request->token , $user->phone);
if(! $status) {
return redirect(route('phone.token'));
}
if(auth()->loginUsingId($user->id,$request->get('auth.remember'))) {
$user->activeCode()->delete();
return redirect('/home');
}
return redirect(route('phone.token'));
}
دوستان لطفا اگه کسی میدونه راهنمایی کنید ممنون میشم
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ActiveCode extends Model
{
protected $fillable = [
'user_id',
'code',
'expired_at'
];
public $timestamps = false;
public function user()
{
return $this->belongsTo(User::class);
}
// public function scopeVerifyCode($query , $code, $user)
// {
// return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first();
// }
public function scopeGenerateCode($query , $user)
{
$user->activeCode()->delete();
do {
$code = mt_rand(100000, 999999);
} while($this->checkCodeIsUnique($user , $code));
$user->activeCode()->create([
'code' => $code,
'expired_at' => now()->addMinutes(10)
]);
return $code;
}
private function checkCodeIsUnique($user, int $code)
{
return !! $user->activeCode()->whereCode($code)->first();
}
private function getAliveCodeForUser($user)
{
return $user->activeCode()->where('expired_at' , '>' , now())->first();
}
}
شاید پاسخ شما همینجا باشد
@salar.mohammad2013
بازم همین نمایش میده
Illuminate\Database\Eloquent\Collection {#1097 ▼ // app\Http\Controllers\Auth\RegisterController.php:81
#items: []
#escapeWhenCastingToString: false
}@salar.mohammad2013
ببخشید اشتباه فرستادم
خروجی
0 // app\Http\Controllers\Auth\RegisterController.php:89@salar.mohammad2013
مدل چیزی عوض کردم طبق چیزی که گفتید
Illuminate\Database\Eloquent\Collection {#1097 ▼ // app\Http\Controllers\Auth\RegisterController.php:81
#items: []
#escapeWhenCastingToString: false
}"2022 Nov Sun" // app\Http\Controllers\Auth\RegisterController.php:82میتونم انی دسک بدم ؟
@salar.mohammad2013
فرمت های مختلف تست کردم داداش
@salar.mohammad2013
نه داداش نتونستم هنوز
لینک اسکایپ
https://join.skype.com/invite/GaRiWTBK3QuS