From aa4d8f29030e2e68e585e451fc7d0913a09950e8 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Thu, 11 Aug 2022 11:38:10 +0800 Subject: [PATCH] fixed errors --- beike/Admin/Http/Controllers/PluginController.php | 13 +++++++++---- beike/Plugin/Plugin.php | 13 +++++++++++++ plugins/Paypal/columns.php | 1 + 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/beike/Admin/Http/Controllers/PluginController.php b/beike/Admin/Http/Controllers/PluginController.php index b06fcdf2..c2ce652e 100644 --- a/beike/Admin/Http/Controllers/PluginController.php +++ b/beike/Admin/Http/Controllers/PluginController.php @@ -87,16 +87,21 @@ class PluginController extends Controller /** * @param Request $request * @param $code - * @return array - * @throws Exception + * @return mixed */ public function update(Request $request, $code) { - app('plugin')->getPluginOrFail($code); $fields = $request->all(); + $plugin = app('plugin')->getPluginOrFail($code); + if (method_exists($plugin, 'validate')) { + $validator = $plugin->validate($fields); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(); + } + } + SettingRepo::update('plugin', $code, $fields); return redirect($this->getRedirect())->with('success', '修改成功'); - // return json_success("编辑成功"); } diff --git a/beike/Plugin/Plugin.php b/beike/Plugin/Plugin.php index 8ec86618..0d06ce44 100644 --- a/beike/Plugin/Plugin.php +++ b/beike/Plugin/Plugin.php @@ -12,6 +12,7 @@ namespace Beike\Plugin; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use Beike\Repositories\PluginRepo; use Beike\Repositories\SettingRepo; @@ -148,6 +149,18 @@ class Plugin implements Arrayable, \ArrayAccess return $this->columns; } + + /** + * 字段验证 + * @param $requestData + * @return \Illuminate\Contracts\Validation\Validator + */ + public function validate($requestData): \Illuminate\Contracts\Validation\Validator + { + $rules = array_column($this->columns,'rules', 'name'); + return Validator::make($requestData, $rules); + } + /** * 获取插件启动文件路径 * diff --git a/plugins/Paypal/columns.php b/plugins/Paypal/columns.php index fd5e9441..cdb042a6 100644 --- a/plugins/Paypal/columns.php +++ b/plugins/Paypal/columns.php @@ -15,6 +15,7 @@ return [ 'label' => 'Sandbox Client ID', 'type' => 'string', 'required' => true, + 'rules' => 'required|min:3|max:5', 'description' => '沙盒模式 Client ID', ], [