小编beg*_*ner的帖子

如何在yii2中连接3个表并在Gridview中显示,然后使排序正常工作

我用gii工具创建了crud应用程序.我有3个表tbl_targetcities,lib_cities和lib_provinces.我能够将lib_cities连接到tbl_targetciteis而不是lib_provinces.而且城市/市政的分类也不起作用.它似乎根据ID进行排序.

tbl_target_cities

在此输入图像描述

lib_cities

在此输入图像描述

lib_provinces

在此输入图像描述

样本视图

在此输入图像描述

到目前为止,这是我在模型中的关系.

public function getCityName()
{
  return $this->hasOne(LibCities::className(),['city_code'=>'city_code']);
}
Run Code Online (Sandbox Code Playgroud)

在我的视图文件中......

    <?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'attribute'=>'city_code',
            'value'=>'cityName.city_name'
        ],
                   [
            'attribute'=>'prov code',
            'value'=>'cityName.city_name'
        ],
        'kc_classification',
        'cluster',
        'grouping',
         'priority',
        'launch_year',

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>
Run Code Online (Sandbox Code Playgroud)

如何从lib_provinces显示prov_name ???

编辑在评论框中回答用户2839376的问题

在搜索模型类中

$query = TblSpBub::find();
    $query->joinWith('brgyCode')->joinWith(['cityCode'])->joinWith(['cityCode.provCode']);

    $covered=  LibAreas::find()->where(['user_id'=>yii::$app->user->identity->id])->all();

    $query->all();

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort'=> ['defaultOrder' => ['id'=>SORT_DESC]],
    ]);

    $dataProvider->sort->attributes['city'] = [
    'asc' => ['lib_Cities.city_name' => SORT_ASC],
    'desc' …
Run Code Online (Sandbox Code Playgroud)

yii2

2
推荐指数
1
解决办法
2634
查看次数

yii2从关系中添加gridview中的列并在gridview中排序

我有两个问题......

我有3张桌子.tbl_target_cities,lib_cities和lib_provinces.

通过遵循视频教程,我能够将tbl_target_cities中的数据显示到gridview,并将其连接到lib_cities.

除了来自关系的CITY/MUNICIPALITY列之外,gridview中的排序工作正常.

问题1:如何纠正CITY/MUNICIPALITY列的排序?

问题2:如何添加带有搜索框和功能排序功能的省列?

tbl_target_cities

+-------------------+-----------------------+
| Field             | Type                  |
+-------------------+-----------------------+
| id                | int(11)               |
| city_code         | varchar(20)           |
| kc_classification | varchar(100)          |
| cluster           | enum('1','2','3','4') |
| grouping          | int(11)               |
| priority          | varchar(100)          |
| launch_year       | int(11)               |
+-------------------+-----------------------+
Run Code Online (Sandbox Code Playgroud)

lib_cities

+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| city_code     | char(9)      | NO   | PRI |         |       |
| …
Run Code Online (Sandbox Code Playgroud)

yii2 yii2-advanced-app

2
推荐指数
1
解决办法
1万
查看次数

Kartik gridview 上的 YII2 导出菜单未显示

我已经安装了kartik gridview,从文档演示中,我复制了一些代码并得到了这个..

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'hover'=>true,
        'condensed'=>true,
        'floatHeader'=>true,
        'bordered'=>true,
        'pjax' => true,
        'toolbar'=>[
                    '{export}',
                    '{toggleData}',
                    ],
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            [
                'attribute'=>'province',
                'label'=>'Province',
                'value'=>'cityCode.provCode.prov_name',
            ],....
Run Code Online (Sandbox Code Playgroud)

页面显示 gridview 正常,但缺少导出按钮。我还需要下载导出插件吗?还是代码缺少重要的配置?

gridview export yii2-advanced-app

2
推荐指数
1
解决办法
4724
查看次数

带有行数的 Laravel 分页

如何添加表中每一行的行号?我使用了分页,但发现很难显示行数。在第 2 页,它应该从 6 开始,因为我的分页是每页 5。

编辑

以及如何正确显示showing 1 to 5 of 2095表格上方的单词?

在此处输入图片说明

控制器

class SchoolController extends Controller
{
    function index()
    {
        $q = Input::get('q');
        if ($q != "") {
            $schools = LibSchool::where('school_name', 'LIKE', '%' . $q . '%')
                ->orWhere('school_id', 'LIKE', '%' . $q . '%')
                ->orWhere('address', 'LIKE', '%' . $q . '%')
                ->orWhere('school_head', 'LIKE', '%' . $q . '%')
                ->orWhere('level', 'LIKE', '%' . $q . '%')
                ->orderBy('school_name', 'asc')
                ->with('libdistrict')
                ->with('libdistrict.libdivision')
                ->paginate(5)->appends('q', $q);
        } else {
            $schools = …
Run Code Online (Sandbox Code Playgroud)

pagination laravel

2
推荐指数
1
解决办法
3104
查看次数

mkdir(): Yii2 中的权限被拒绝

安装 yii2 后,出现以下错误。

在此处输入图片说明

有人建议我应该给 IIS_IUSRS 完全权限,但仍然无济于事。

在此处输入图片说明

iis-8.5 yii2-advanced-app

1
推荐指数
1
解决办法
5887
查看次数

Laravel雄辩地按条件在查询中添加``where''子句

我想先添加一个条件,然后再添加另一个where查询,但是laravel不允许。我想要类似以下的内容。

function index()
{
    $role = Auth::user()->role; //SEE_ALL, SEE_DEPT_A, SEE_DEPT_B

    $q = Input::get('q');
    if ($q != "") {
        $user = User::where('name', 'LIKE', '%' . $q . '%')
            ->orWhere('email', 'LIKE', '%' . $q . '%')
            ->orderBy('name');

        if ($role == "SEE_DEPT_A") {
            $user->where('user_department', "A");
        }

        $user->paginate(10)->appends('q', $q);
    }

    return view('users.index')->with('data', ['users' => $user, 'q' => $q]);
}
Run Code Online (Sandbox Code Playgroud)

laravel

1
推荐指数
1
解决办法
97
查看次数

Laravel 8 Yajra DataTable在同一页面刷新

如何刷新当前页码的DataTable而不返回第一页?此代码刷新表格,但继续转到第一页或分页的第一个链接。

$('#table_users').DataTable().ajax.reload();
Run Code Online (Sandbox Code Playgroud)

这就是表的初始化方式。

        $(document).ready(function() {
            // init datatable.
            var dataTable = $('#table_users').DataTable({
                processing: true,
                serverSide: true,
                autoWidth: false,
                pageLength: 10,
                // scrollX: true,
                "order": [[ 0, "desc" ]],
                ajax: {
                    url: '{{ route('get_users') }}'
                },
                columns: [
                    {data: 'name', name: 'name'},
                    {data: 'email', name: 'email'},
                    {data: 'sex', name: 'sex'},
                    {data: 'bday', name: 'bday'},
                    {data: 'contact', name: 'contact'},
                    {data: 'scope', name: 'scope'},
                    {data: 'roles', name: 'roles'},
                    {data: 'permissions', name: 'permissions'},
                ]
            });
        });
Run Code Online (Sandbox Code Playgroud)

控制器。

    $user = User::select('id', 'name', 'email', 'sex', 'bday', …
Run Code Online (Sandbox Code Playgroud)

laravel yajra-datatable

0
推荐指数
1
解决办法
2072
查看次数