function ($params) { // $keyword = $params['keyword'] ?? ''; // return [ // 'filters' => [ // ['field' => '***', 'operator' => '=', 'value' => '***'] // ], // 'fields' => ['id'], // 'relations' => [], // 'custom' => function(Builder $q) use ($keyword) { // // 示例 // if ($keyword) { // $q->where(function($q2) use($keyword) { // $q2->whereHas('***', function($q3) use($keyword) { // $q3->where('***', 'like', "%{$keyword}%"); // })->orWhereHas('***', function($q4) use($keyword) { // $q4->where('***', 'like', "%{$keyword}%"); // }); // }); // } // }, // 'sorts' => [ // ['field' => 'created_at', 'direction' => 'desc'] // ], // 'pagination' => [ // 'page' => $params['page'] ?? 1, // 'per_page' => $params['per_page'] ?? 10, // ] // ]; // } ]; } public function store(array $data): Model { $info = $this->getModel()::where('email', strtolower($data['email']))->first(); if ($info) { return $info; } $data['email'] = strtolower($data['email']); $data['created_at'] = date('Y-m-d H:i:s'); $data['updated_at'] = date('Y-m-d H:i:s'); return $this->create($data); } }