OtaVersionCheckValidator.php
1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
 * Created by PhpStorm.
 * User: billy
 * Date: 11/02/2017
 * Time: 4:19 PM
 */
namespace App\Modules\Validators;
use App\Modules\Models\Ota\OtaVersion;
class OtaVersionCheckValidator
{
    public function validate($attribute, $value, $params, $validator){
        //return true if field value is foo
        $values = explode('.', $value);
        $versions = OtaVersion::all();
        $latest_version_array = array(0,0,0,0);
        foreach ($versions as $version)
        {
            $versionArray = explode('.', $version->version_code);
            for ($i = 0; $i < 4; $i++)
            {
                if (intval($versionArray[$i]) > intval($latest_version_array[$i]))
                {
                    $latest_version_array = $versionArray;
                    break;
                }
            }
        }
        for ($i = 0; $i < 4; $i++)
        {
            if (intval($values[$i]) > intval($latest_version_array[$i]))
            {
                return true;
            }
            else if (intval($values[$i]) < intval($latest_version_array[$i]))
            {
                return false;
            }
        }
        return false;
    }
}