红酒泡绿茶 2016-08-20 01:17
浏览 110

在yii2中搜索不起作用

I want to do search in Nama Mahasiswa search bar like picture below. As example I type name yuhara but there are no result whereas there are yuhara in the database.

enter image description here

enter image description here

Search model codes:

<?php

namespace app\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\AlumnyS3;
use app\models\AlumniIntegrasi;
/**
 * AlumnyS3Search represents the model behind the search form about `app\models\AlumnyS3`.
 */
class AlumnyS3Search extends AlumnyS3
{
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['Alumnys3ID'], 'integer'],
            [['NRP', 'NamaMahasiswa', 'ProgramStudi', 'TanggalMasuk', 'TanggalKeluar'], 'safe'],
        ];
    }
    public $NamaMahasiswa;

    /*public $TanggalMasuk;
    public $tanggalMasukText;*/
    /**
     * @inheritdoc
     */
    public function scenarios()
    {
        // bypass scenarios() implementation in the parent class
        return Model::scenarios();
    }

    /**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
        $query = AlumnyS3::find();
        $query->joinWith('alumniIntegrasi');

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'Alumnys3ID' => $this->Alumnys3ID,
        ]);



            $query->andFilterWhere([
                'alumnys3.NRP' => $this->NRP,
                'alumniintegrasi.NamaMahasiswa' => $this->NamaMahasiswa,
                'alumnys3.ProgramStudi' => $this->ProgramStudi,
                'alumnys3.TanggalMasuk' => $this->TanggalMasuk,
                'alumnys3.TanggaKeluar' => $this->TanggalKeluar

            ]);

        return $dataProvider;
    }
}

Model codes:

<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "alumnys3".
 *
 * @property integer $Alumnys3ID
 * @property string $NRP
 * @property string $ProgramStudi
 * @property string $TanggalMasuk
 * @property string $TanggalKeluar
 *
 * @property AlumniIntegrasi $nRP
 */
class AlumnyS3 extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'alumnys3';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['NRP'], 'required'],
            [['NRP'], 'string', 'max' => 15],
            [['ProgramStudi'], 'string', 'max' => 5],
            [['TanggalMasuk', 'TanggalKeluar'], 'string', 'max' => 30],
            [['NRP'], 'exist', 'skipOnError' => true, 'targetClass' => AlumniIntegrasi::className(), 'targetAttribute' => ['NRP' => 'NRP']],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'Alumnys3ID' => Yii::t('app', 'Alumnys3 ID'),
            'NRP' => Yii::t('app', 'Nrp'),
            'ProgramStudi' => Yii::t('app', 'Program Studi'),
            'TanggalMasuk' => Yii::t('app', 'Tanggal Masuk'),
            'TanggalKeluar' => Yii::t('app', 'Tanggal Keluar'),
            'NamaMahasiswa' => Yii::t('app', 'Nama Mahasiswa'),
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getalumniIntegrasi()
    {
        return $this->hasOne(alumniIntegrasi::className(), ['NRP' => 'NRP']);
    }

     public function getNamaMahasiswa()
    {
        $alumniIntegrasi = alumniIntegrasi::findOne(['NRP'=> $this->NRP]);
        if (empty($alumniIntegrasi))
            return '';
        return $alumniIntegrasi->NamaMahasiswa;
    }

    /*public function getTanggalMasukText()
    {
        $alumniIntegrasi = alumniIntegrasi::findOne(['NRP'=> $this->NRP]);
        if (empty($alumniIntegrasi))
            return '';
        return $alumniIntegrasi->TanggalMasuk;
    }*/
}

Index codes:

<?php

use yii\helpers\Html;
use yii\grid\GridView;

/* @var $this yii\web\View */
/* @var $searchModel app\models\AlumnyS3Search */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = Yii::t('app', 'Alumny S3s');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="alumny-s3-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?>

    <p>
        <?= Html::a(Yii::t('app', 'Create Alumny S3'), ['create'], ['class' => 'btn btn-success']) ?>
    </p>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            //'Alumnys3ID',
            'NRP',
            'NamaMahasiswa',
            'ProgramStudi',
            //'tanggalMasukText',
            'TanggalMasuk',
            'TanggalKeluar',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
</div>

I don't know how to fix that. Could you plese help me to solve this codes? I'm really grateful if you can solve this, thanks!

  • 写回答

1条回答 默认 最新

  • dongyuntao2000 2016-08-20 04:42
    关注

    Add like query in search model like below

    <?php
    
    namespace app\models;
    
    use Yii;
    use yii\base\Model;
    use yii\data\ActiveDataProvider;
    use app\models\AlumnyS3;
    use app\models\AlumniIntegrasi;
    /**
     * AlumnyS3Search represents the model behind the search form about `app\models\AlumnyS3`.
     */
    class AlumnyS3Search extends AlumnyS3
    {
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [['Alumnys3ID'], 'integer'],
                [['NRP', 'NamaMahasiswa', 'ProgramStudi', 'TanggalMasuk', 'TanggalKeluar'], 'safe'],
            ];
        }
        public $NamaMahasiswa;
    
        /*public $TanggalMasuk;
        public $tanggalMasukText;*/
        /**
         * @inheritdoc
         */
        public function scenarios()
        {
            // bypass scenarios() implementation in the parent class
            return Model::scenarios();
        }
    
        /**
         * Creates data provider instance with search query applied
         *
         * @param array $params
         *
         * @return ActiveDataProvider
         */
        public function search($params)
        {
            $query = AlumnyS3::find();
            $query->joinWith('alumniIntegrasi');
    
            // add conditions that should always apply here
    
            $dataProvider = new ActiveDataProvider([
                'query' => $query,
            ]);
    
            $this->load($params);
    
            if (!$this->validate()) {
                // uncomment the following line if you do not want to return any records when validation fails
                // $query->where('0=1');
                return $dataProvider;
            }
    
            // grid filtering conditions
            $query->andFilterWhere([
                'Alumnys3ID' => $this->Alumnys3ID,
            ]);
    
    
    
                $query->andFilterWhere([
                    'alumnys3.NRP' => $this->NRP,
                   // 'alumniintegrasi.NamaMahasiswa' => $this->NamaMahasiswa,
                    'alumnys3.ProgramStudi' => $this->ProgramStudi,
                    'alumnys3.TanggalMasuk' => $this->TanggalMasuk,
                    'alumnys3.TanggaKeluar' => $this->TanggalKeluar
    
                ]);
                   $query->andFilterWhere(['like', 'alumniintegrasi.NamaMahasiswa', $this->NamaMahasiswa]);
    
    
    
            return $dataProvider;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分