讨论 ModStart TA的回帖
第 1 位会员
注册于
ModStart官方出品
帖子
8
回帖
996
TA的回帖
数据库中文字如何应用多语言Locale

推荐使用如下的表结构

公共
article ( id, postTime, xxx )
多语言
article_data ( id, articleId, lang, title, content, xxx )


怎么在判断唯一时 增加条件判断

目前5.x和9.x实现方式不同。可以参考一下。另外推荐放在 hookSaving 中通过代码判断。

https://laravel.com/docs/9.x/validation#rule-unique

Rule::unique('xxx')->where(fn ($query) => $query->where('leftStatus', 1))

https://laravel.com/docs/5.1/validation#rule-unique

unique:xxx,alias,NULL,id,leftStatus,1


请问在CMS中,在控制器的INDEX方法中如何添加两个不同的表格?

可以参考这个

<?php


namespace App\Admin\Controller;


use App\Model\DemoNews;
use App\Model\DemoNewsCategory;
use Illuminate\Routing\Controller;
use ModStart\Admin\Concern\HasAdminDetail;
use ModStart\Admin\Concern\HasAdminForm;
use ModStart\Admin\Concern\HasAdminGrid;
use ModStart\Admin\Layout\AdminPage;
use ModStart\Core\Input\InputPackage;
use ModStart\Core\Input\Request;
use ModStart\Grid\Grid;
use ModStart\Grid\GridFilter;
use ModStart\Support\Concern\HasPageTitleInfo;
use ModStart\Widget\Box;

class DemoNewsMultiGridController extends Controller
{
    use HasPageTitleInfo;
    use HasAdminGrid;
    use HasAdminForm;
    use HasAdminDetail;

    public function index(AdminPage $page)
    {
        $grid1 = $this->grid1();
        $grid2 = $this->grid2();
        if (Request::isPost()) {
            switch (InputPackage::buildFromInput()->getTrimString('_grid')) {
                case 'grid1':
                    return $grid1->request();
                case 'grid2':
                    return $grid2->request();
            }
        }
        return $page
            ->pageTitle('新闻管理(多个)')
            ->append(Box::make($grid1, '新闻分类'))
            ->append(Box::make($grid2, '新闻管理'));
    }

    public function grid1()
    {
        $grid = Grid::make(DemoNewsCategory::class);
        $grid->id('id', 'ID');
        $grid->text('title', '标题');
        $grid->title('新闻分类');
        $grid->urlGrid(modstart_admin_url('demo/news_multi_grid', ['_grid' => 'grid1']));
        $grid->canAdd(false)->canEdit(false)->canDelete(false);
        $grid->gridFilter(function (GridFilter $filter) {
            $filter->eq('id', 'ID');
            $filter->like('title', '标题');
        });
        return $grid;
    }

    public function grid2()
    {
        $grid = Grid::make(DemoNews::class);
        $grid->id('id', 'ID');
        $grid->select('categoryId', '分类')->optionModelTree(DemoNewsCategory::class);
        $grid->text('title', '标题');
        $grid->richHtml('content', '内容');
        $grid->title('新闻管理');
        $grid->urlGrid(modstart_admin_url('demo/news_multi_grid', ['_grid' => 'grid2']));
        $grid->canAdd(false)->canEdit(false)->canDelete(false);
        $grid->gridFilter(function (GridFilter $filter) {
            $filter->eq('id', 'ID');
            $filter->like('title', '标题');
        });
        return $grid;
    }
}


评论的邮箱和网站的取消

可以自行修改代码取消,默认是需要填写的。

ModStartCms 快速curd中自定义主键id,字段编辑的时候报错

系统默认使用 id 作为主键,如果需要使用自定义主键,可以通过数据模型类的方法来实现。

第一步,定义数据模型类

namespace Module\News\Model;
use Illuminate\Database\Eloquent\Model;
class News extends Model{
    protected $table = 'news';
    // 这里可以自定义主键
    protected $primaryKey = 'nid';
}


第二步,使用数据模型类作为Form、Detail、Grid的操作对象

// 表单
$form = Form::make(News::class);
// 详情
$detail = Detail::make(News::class);
// 数据表格
$grid = Grid::make(News::class);
// 快速CRUD
$builder->init(News::class)


博客文章观看权限问题

修改 module/Blog/View/pc/blog/show.blade.php 文件的内容显示部分。

如果自己搞不定可在任务大厅提个任务找其他技术人员帮你解决。

博客文章观看权限问题

目前博客已经适配Member模块。

要实现功能可以安装Member模块后,在博客页面 module/Blog/View/pc/blog/show.blade.php 做一个简单判断。

@if( \Module\Member\Auth\MemberUser::id() )
    <div>博客内容</div>
@else
    <div>请先登录</div>
@endif


QQ
微信
客服