Karson
Karson - FastAdmin创始人
FastAdmin!

注册于 49年前

回答
2592
文章
69
关注者
45

@小胖字 请使用

$this->success("", "", $r);

返回数据

@cnqn 找到

addons/cms/model/Channel.php

找到

getBreadcrumb

这个方法修改下即可。

@zuisheji

addons/cms/view/default/common/layout.html

底部。

@xlbvip 这个简单。

<a href="passport/index" class="btn-addtabs" title="护照管理">你的按钮</a>

@liaoxulin 左侧菜单本就是按照用户所在的组拥有的权限进行按需展示的,你只需要配置好管理员所在组的权限即可。

图片中的按钮也是根据管理员所在组拥有的权限进行控制显示的,如果你需要增减按钮,修改视图模板index.html即可,如果你需要给自己添加的按钮控制显示隐藏,使用

<a href="javascript:;" class="btn btn-danger {:$auth->check('test/myaction')?'':'hide'}" ><i class="fa fa-pencil"></i> 按钮</a>

其中的

{:$auth->check('test/myaction')?'':'hide'}

test为控制器Test.phpmyaction为控制器中的方法myaction
然后在权限管理,分组管理中配置组权限即可。

@wminw 目前无法单独根据顶级栏目,调用包含子栏目的列表数据,建议你使用

channel="1,2,3"

或直接使用

model="模型ID"

来调用。
或者修改下Archives.php中的getArchivesList的代码,


 if ($channel !== '') {
    $subQuery = Channel::where('id', 'in', $channel)->whereOr('parent_id', 'in', $channel)->field('id')->buildSql();
    //子级
    $where['channel_id'] = ['exp', Db::raw(' IN (' . $subQuery . ')')];
}

上面的方法只能两级,如果需要无限级的,可以在Channel.php中添加一个方法

 /**
 * 获取栏目所有子级的ID
 * @param mixed $ids      栏目ID或集合ID
 * @param bool  $withself 是否包含自身
 * @return array
 */
public static function getChannelChildrenIds($ids, $withself = true)
{
    $cacheName = 'childrens-' . $ids . '-' . $withself;
    $result = Cache::get($cacheName);
    if ($result === false) {
        $channelList = Channel::where('status', 'normal')
            ->order('weigh desc,id desc')
            ->cache(true)
            ->select();

        $result = [];
        $tree = \fast\Tree::instance();
        $tree->init(collection($channelList)->toArray(), 'parent_id');
        $channelIds = is_array($ids) ? $ids : explode(',', $ids);
        foreach ($channelIds as $index => $channelId) {
            $result = array_merge($result, $tree->getChildrenIds($channelId, $withself));
        }
        Cache::set($cacheName, $result);
    }
    return $result;
}

然后在Archives.php中使用

if ($channel !== '') {
    $where['channel_id'] = ['in', Channel::getChannelChildrenIds($channel)];
}

即可。

@qfsoft 请使用

top.window.Layer.open({
    title:'标题',
    content:'内容'
})

top.window.Fast.api.open(url);

@lsljk 请在栏目管理,栏目授权中授权管理员可以操作的栏目。

发布
问题