2017-03-20 5 views
0

私も私の質問を定義する方法がわからないので、私は本当に答えを検索できなかったので、あなたはポイントができれば、それは理解されるのと同じコントローラの新しいインデックスページ上のアクティブ()レコードを表示します私は正しい方向へ。 私は、モデルとビューを持っています。通常、私がインデックスを呼び出している場合は、すべてのレコードを取得しています。それはうまく動作します。今私は、データベースからアクティブ()レコードだけを照会したいと思います。だから私は、アクティブなレコードだけ新しいインデックスページを見たいと思います。これをどこで定義する必要がありますか?もちろん、関数自体は既にModelQueryで定義されています。しかし、コントローラでは、私は新しいビューを呼び出すことができるように、新しい関数を作成する必要があります。Yii2は

public function actionIndex2() { 
    $searchModel = new ModelSearch; 
    $dataProvider = $searchModel->search($_GET); 
    ... 
    return $this->render('index2', [ 
       'dataProvider' => $dataProvider, 
       'searchModel' => $searchModel, 
    ]); 
} 

私はここにすべての可能な場所が、運に->active()を追加しようとしました。私はModelSearchを使いこなすことができません。基本的なインデックスサイトの機能も壊してしまうからです。私がそうしているときに私はそれを使うことができることは明らかです:Order::find()->active()しかし、今はそうではありません。新しいModelSearchを作成する必要がありますか?私はそれが必要でないことを願っています。どうもありがとう!

+0

あなたは、ビューフォーム/ actionViewのようにではなくviewDetailのGridViewコントロールでページが必要であることを意味します?他の何か – scaisEdge

+0

私は新しい**インデックス**ページが必要です。 – user2511599

答えて

0

この方法を試みることができます。

public function search($params) { 
    $query = Model::find()->activeQuery1()->activeQuery2(); 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $query, 
     ... 

または

public function search($params) { 
    $query = Model::find(); 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $query->activeQuery1()->activeQuery2(), 
     ... 

これは、あなたがActiveQueriesの多くの組み合わせなど、多くの時間を使いたいとModelSearchに新しいModelSearchか、新しい検索方法を作成しなければならないことを意味。

1

あなたのURL/INDEX2で$識別などによってフィルタをしたいと仮定?ID = 10)あなたがそう正式にあなたがあなたのModelSearchの検索方法にごActiveQueriesを追加する必要が

public function actionIndex2($id) { 
     $searchModel = new ModelSearch; 
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
     $dataProvider->query-> 
        andWhere(['id' => $id]); 
     ... 
     return $this->render('index2', [ 
        'dataProvider' => $dataProvider, 
        'searchModel' => $searchModel, 
     ]); 
    } 
+0

は動作しているようです: '$ dataProvider-> query-> active();'多くの感謝! – user2511599

+0

あなたが有効な提案だと思うのであれば、答えが役に立つと評価することもできます – scaisEdge

+0

グリッドの基本フィルタリングは機能していません – user2511599