2022-07-18 17:37:55 +08:00

81 lines
1.7 KiB
PHP

<?php
namespace App\ResultStruct;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
class Result {
private $data;
private $code;
private $msg;
public function __construct($data = [], $code = ERROR_CODE_OK, $msg = "Ok") {
$this->data = $data;
$this->code = $code;
$this->msg = $msg;
}
public static function make($data = [], $code = ERROR_CODE_OK, $msg = "Ok") {
return new static($data, $code, $msg);
}
public function getCode() {
return $this->code;
}
public function setCode($code) {
$this->code = $code;
return $this;
}
public function getData() {
return $this->data;
}
public function setData($data = []) {
$this->data = $data;
return $this;
}
public function getMsg() {
return $this->msg;
}
public function setMsg($msg) {
$this->msg = $msg;
return $this;
}
public function isSuccess() {
return $this->code === ERROR_CODE_OK;
}
public function isError() {
return !$this->isSuccess();
}
public function toArray() {
return ['code' => $this->code, 'desc' => $this->msg, 'data' => $this->data];
}
public function getDataAsCollection() {
return Collection::make($this->data);
}
public function setDataField($field, $value) {
Arr::set($this->data, $field, $value);
return $this;
}
public function getDataField($field, $default = []) {
return Arr::get($this->data, $field, $default);
}
public function hasDataField($field) {
return Arr::has($this->data, $field);
}
}