首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2错误未定义偏移量:0(数据库中没有匹配)

Yii2错误未定义偏移量:0(数据库中没有匹配)
EN

Stack Overflow用户
提问于 2022-08-02 06:20:09
回答 3查看 63关注 0票数 0

为我的愚蠢问题道歉。这是我的SiteController。

代码语言:javascript
复制
    public function actionIndex()
    {
        $searchModel = new MahasiswaSearch();
        $dataProvider = $searchModel->search($this->request->queryParams);

    return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }

这是我的表格_search

代码语言:javascript
复制
<div class="control control-expanded">

    <?php $form = ActiveForm::begin([
        'action' => ['index'],
        'method' => 'get',
    ]); ?>

    <?php // echo $form->field($model, 'id') ?>

    <?= $form->field($model, 'nim', [
           'inputOptions' => ['autofocus' => 'autofocus', 'class' => 'input' ,'required'=>true]
     ])->input('nim', ['placeholder' => "Nomor Induk Mahasiswa"])->label(false); ?>

</div>

<div class="control control-expanded">
    <?= Html::submitButton('Cari', ['class' => 'button button-primary button-block']) ?>
</div>

这是我的index.php

代码语言:javascript
复制
<?php $dataes = $dataProvider->models[0]->nim;if ($dataes=="") { ?>


                    <?php } else {?>
                    <div class="hero-copy hero-2" style="z-index:30;background-color: rgba(56, 76, 76, 0.5);padding-top:8px; margin-top:8px;">
                        <p class="hero-paragraph is-revealing" style="text-align:center;">PENGUKUHAN MAHASISWA BARU</p>


                        <?php
                             echo "<p style=padding-left:10px;> NIM : " . $dataProvider->models[0]->nim ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> NAMA : " . $dataProvider->models[0]->nama ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> ANGKATAN : " . $dataProvider->models[0]->angkatan ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> PRODI : " . $dataProvider->models[0]->prodi ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> LOKASI KEGIATAN : " . $dataProvider->models[0]->ruangan ;echo " </p> \n";
                            
                        }
                        ?>

我的问题是,我想检查$dataes =在数据库中找不到。它必须是:

代码语言:javascript
复制
<p> error Messsage </p>

但当我在谷歌上发现问题和我没什么两样。或者使用表单yii2创建搜索,当错误到错误站点时,我尝试将它移动到错误站点,它不起作用。未定义的偏移量: 0,如果您知道在这里解决我的问题,谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-08-05 03:32:24

需要更改index.php,如果:

代码语言:javascript
复制
  <?php $dataes = $dataProvider->models ? $dataProvider->models[0]->nim : ''; 
                    if ($dataProvider->count == 0) {

    
                     } elseif ($dataes=="") { ?>
                    <p>Wow</p>
                    <?php }else{ ?>
                    <div class="hero-copy hero-2" style="z-index:30;background-color: rgba(56, 76, 76, 0.5);padding-top:8px; margin-top:8px;">
                        <p class="hero-paragraph is-revealing" style="text-align:center;">PENGUKUHAN MAHASISWA BARU</p>

                        <?php
                             echo "<p style=padding-left:10px;> NIM : " . $dataProvider->models[0]->nim ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> NAMA : " . $dataProvider->models[0]->nama ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> ANGKATAN : " . $dataProvider->models[0]->angkatan ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> PRODI : " . $dataProvider->models[0]->prodi ;echo " </p> \n";
                             echo "<p style=padding-left:10px;> LOKASI KEGIATAN : " . $dataProvider->models[0]->ruangan ;echo " </p> \n";
                            
                        }
                        ?>
票数 0
EN

Stack Overflow用户

发布于 2022-08-02 08:37:23

尝试检查数据库中键0的数据是否可用。如果没有数据,则该问题来自于在键为0的数组为空时用$dataes定义model[0]的行。

代码语言:javascript
复制
<?php $dataes = $dataProvider->models[0]->nim; ?>

先尝试初始化变量$a=0,而不是定义数组键$dataes = $dataProvider->models->nim,然后再用if循环中的变量调用数组。

票数 0
EN

Stack Overflow用户

发布于 2022-08-03 09:22:13

我想您使用的是ActiveDataProvider。如果是这样的话,您可以使用if ($dataProvider->count == 0)来检查是否没有找到数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73202804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档