0
0
Files
Babyclass/app/Admin/Controllers/WechatController.php
2020-08-04 10:09:42 +08:00

121 lines
3.7 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Models\WechatMenu;
use Illuminate\Http\Request;
use Validator;
class WechatController extends Controller
{
public function menus(Request $request)
{
$name = $request->name;
$menus = WechatMenu::when($name, function ($query) use ($name) {
$query->where('name', 'like', "%{$name}%");
})->orderBy('sort', 'asc')->get();
$genMenus = WechatMenu::where('parent_id', 0)->orderBy('sort', 'asc')->get();
return view('Admin::wechat.menus', compact('menus', 'genMenus'));
}
/**
* 发布菜单到微信
* @Author:<C.Jason>
* @Date:2018-11-15T16:05:55+0800
* @return [type] [description]
*/
public function publish()
{
$buttons = WechatMenu::getPublishArray();
$app = app('wechat.official_account');
$result = $app->menu->create($buttons);
if ($result->errcode == 0) {
return $this->success();
} else {
return $this->error($result->errmsg);
}
}
public function create()
{
$topMenus = WechatMenu::where('parent_id', 0)->get();
return view('Admin::wechat.create', compact('topMenus'));
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|min:2|max:5',
'parent_id' => 'required',
'type' => 'required|in:view,click,miniprogram',
'value' => 'required',
], [
'name.required' => '菜单名称必须填写',
'name.min' => '菜单名称最小:min位',
'name.max' => '菜单名称最大:max位',
'parent_id.required' => '上级菜单必须选择',
'type.required' => '菜单类型必须选择',
'type.in' => '菜单类型选择有误',
'value.required' => '菜单键值必须填写',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
if (WechatMenu::create($request->all())) {
return $this->success('', 'close');
} else {
return $this->error();
}
}
public function edit(WechatMenu $menu)
{
$topMenus = WechatMenu::where('parent_id', 0)->where('id', '<>', $menu->id)->get();
return view('Admin::wechat.edit', compact('topMenus', 'menu'));
}
public function update(Request $request, WechatMenu $menu)
{
$validator = Validator::make($request->all(), [
'name' => 'required|min:2|max:5',
'parent_id' => 'required',
'type' => 'required|in:view,click,miniprogram',
'value' => 'required',
], [
'name.required' => '菜单名称必须填写',
'name.min' => '菜单名称最小:min位',
'name.max' => '菜单名称最大:max位',
'parent_id.required' => '上级菜单必须选择',
'type.required' => '菜单类型必须选择',
'type.in' => '菜单类型选择有误',
'value.required' => '菜单键值必须填写',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
if ($menu->update($request->all())) {
return $this->success('编辑成功', 'close');
} else {
return $this->error();
}
}
public function destroy(WechatMenu $menu)
{
if ($menu->delete()) {
return $this->success();
} else {
return $this->error();
}
}
}