keksAccount/app/Models/AppCode.php

52 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Laravel\Lumen\Auth\Authorizable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
class AppCode extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'access_id', 'code'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'',
];
static function createCode(AppAccess $appAccess) {
$characters = '0123456789';
$randstring = '';
for ($i = 0; $i < 20; $i++) {
$randstring .= $characters[rand(0, strlen($characters)-1)];
}
$code = $randstring;
$appCode = new AppCode();
$appCode->access_id = $appAccess->id;
$appCode->code = $code;
$appCode->saveOrFail();
return $appCode;
}
public function getAccess(): AppAccess {
return AppAccess::query()->where("id", "=", $this->access_id)->firstOrFail();
}
}