2019-07-13周报
<h1>用户登录实现</h1>
<p>$menuList = Menu::findMenuById($userId);
foreach ($menuList as &$menu) {
$menu['sub'] = Menu::findMenuById($userId, $menu['id']);
//遍历一级菜单下的子菜单
}</p>
<p>是否有子菜单取决findMenuByid的第二个参数,遍历出所有一级菜单和一级菜单下对应的二级菜单,把用户可见菜单返回,实现了权限控制</p>
<h1>用户管理</h1>
<p>根据user_to_menu表:</p>
<p>新增用户:判断用户是否绑定过勾选的菜单,有就直接continue,没有则判断其父菜单有没绑定过,有就绑定勾选的子菜单,没有就绑定父菜单和子菜单。</p>
<p>更新用户:
$add = array_diff($menus, $array); //需要新增的menu_id数组
$sub = array_diff($array, $menus); //减去新增的menu_id数组
通过array_diff()去判断用户新绑定的菜单和取消绑定的菜单,然后做对应操作</p>
<h1>菜单管理</h1>
<p>对菜单表进行操作时候,对应的关联表也要做相应处理,并都包含在事务中,实现原子性</p>
<h1>资源控制器操作处理</h1>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/c7024055f3dcf9113373b5a58d18b4b6?showdoc=.jpg" alt="" />
明白操作命名的统一规范,让 Route::resource()可以简化,也能访问到对应操作</p>