diff --git a/beike/Helpers.php b/beike/Helpers.php index 6c1f5fe1..72cc832e 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -236,6 +236,23 @@ function currency_format($price, string $currency = '', string $value = '', bool return CurrencyService::getInstance()->format($price, $currency, $value, $format); } +/** + * 时间格式化 + * + * @param null $datetime + * @return false|string + */ +function time_format($datetime = null) +{ + $format = 'Y-m-d H:i:s'; + if ($datetime instanceof Illuminate\Support\Carbon) { + return $datetime->format($format); + } elseif (is_int($datetime)) { + return date($format, $datetime); + } + return date($format); +} + /** * 图片缩放 * diff --git a/beike/Shop/Http/Controllers/PageController.php b/beike/Shop/Http/Controllers/PageController.php index 66bc312e..12b17e38 100644 --- a/beike/Shop/Http/Controllers/PageController.php +++ b/beike/Shop/Http/Controllers/PageController.php @@ -12,10 +12,17 @@ namespace Beike\Shop\Http\Controllers; +use Beike\Models\Page; +use Beike\Shop\Http\Resources\PageDetail; + class PageController extends Controller { - public function show() + public function show(Page $page) { - + $page->load('description'); + $data = [ + 'page' => (new PageDetail($page))->jsonSerialize() + ]; + dd($data); } } diff --git a/beike/Shop/Http/Resources/PageDetail.php b/beike/Shop/Http/Resources/PageDetail.php new file mode 100644 index 00000000..2531be97 --- /dev/null +++ b/beike/Shop/Http/Resources/PageDetail.php @@ -0,0 +1,38 @@ + + * @created 2022-08-11 18:45:02 + * @modified 2022-08-11 18:45:02 + */ + +namespace Beike\Shop\Http\Resources; + +use Illuminate\Http\Request; +use Illuminate\Http\Resources\Json\JsonResource; + +class PageDetail extends JsonResource +{ + /** + * @param Request $request + * @return array + * @throws \Exception + */ + public function toArray($request): array + { + $description = $this->description; + return [ + 'id' => $this->id, + 'title' => $description->title, + 'content' => $description->content, + 'meta_title' => $description->meta_title, + 'meta_description' => $description->meta_description, + 'meta_keyword' => $description->meta_keyword, + 'created_at' => time_format($this->created_at), + 'updated_at' => time_format($this->updated_at), + ]; + } +}