2016-03-27 7 views
1

私はyii2アドバンスドテンプレートをインストールしましたが、adminテンプレートを統合すると、filterModel(ENTERを押しても何も起きません)以外はすべて動作していました。それを変更することができます。私がyii2の "site.css"スタイルを使用しているときに動作します。
提案がありますか?私のテーブルfilterModelfilterModelがyii2フレームワークで動作していません

画像: image of my table filterModel

これはGridViewコード:

<?= GridView::widget([ 
     /*'dataProvider' => $dataProvider,*/ 
     'filterModel' => $searchModel, 
     'id' => 'table', 
     'dataProvider' => $dataProvider, 
     //'layout'=>"{sorter}\n{pager}\n{summary}\n{items}", 
     //'summary' => $count < 2 ? "" : "Showing {begin} - {end} of {totalCount} items", 
     'tableOptions' => ['class' => 'table table-bordered table-striped table-condensed cf'], 

     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 

      //'idArticle', 
      'designationArticle', 
      'prixArticle', 
      'poidsArticle', 
      //'idUniteArticle0.libelleUniteArticle', 
      //'idFamilleArticle0.libelleFamilleArticle', 
      [ 
       'attribute' => 'idUniteArticle', 
       'value'=> 'idUniteArticle0.libelleUniteArticle', 
      ], 
      [ 
       'attribute' => 'idFamilleArticle', 
       'value'=> 'idFamilleArticle0.libelleFamilleArticle', 
      ], 
      'dateAjoutArticle', 

      ['class' => 'yii\grid\ActionColumn'], 
     ], 
     'rowOptions' =>['ng-model'=>'art'], 
    ]); ?> 

はEDIT(コメントで要求されるように):
これはcontrollerActionです:

<?php 

namespace backend\controllers; 

use Yii; 
use backend\models\Article; 
use backend\models\ArticleSearch; 
use yii\web\Controller; 
use yii\web\NotFoundHttpException; 
use yii\filters\VerbFilter; 
use yii\web\JsonParser; 

/** 
* ArticleController implements the CRUD actions for Article model. 
*/ 
class ArticleController extends Controller 
{ 
public function behaviors() 
{ 
    return [ 
     'verbs' => [ 
      'class' => VerbFilter::className(), 
      'actions' => [ 
       'delete' => ['post'], 
       /*'index' => ['get'], 
       'view' => ['get'], 
       'create' => ['get', 'post'], 
       'update' => ['get', 'put', 'post'], 
       'delete' => ['post', 'delete'],*/ 
      ], 
     ], 
    ]; 
} 

/** 
* Lists all Article models. 
* @return mixed 
*/ 
public function actionIndex() 
{ 
    $searchModel = new ArticleSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
    $model=Article::find()->all(); 
    return $this->render('index', [ 
     // the search Model 
     'searchModel' => $searchModel, 
     'dataProvider' => $dataProvider, 
     'articles' =>$model, 
    ]); 
} 

/** 
* Displays a single Article model. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionView($idArticle, $idFamilleArticle) 
{ 
    return $this->render('view', [ 
     'model' => $this->findModel($idArticle, $idFamilleArticle), 
    ]); 
} 

/** 
* Creates a new Article model. 
* If creation is successful, the browser will be redirected to the 'view' page. 
* @return mixed 
*/ 
public function actionCreate() 
{ 
    $model = new Article(); 

    if ($model->load(Yii::$app->request->post())) { 
     $model->dateAjoutArticle= date('Y-m-d h:m:s'); 
     $model->save(); 
     return $this->redirect(['view', 'idArticle' => $model->idArticle, 'idFamilleArticle' => $model->idFamilleArticle]); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 

/** 
* Updates an existing Article model. 
* If update is successful, the browser will be redirected to the 'view' page. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionUpdate($idArticle, $idFamilleArticle) 
{ 
    $model = $this->findModel($idArticle, $idFamilleArticle); 

    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     return $this->redirect(['view', 'idArticle' => $model->idArticle, 'idFamilleArticle' => $model->idFamilleArticle]); 
    } else { 
     return $this->render('update', [ 
      'model' => $model, 
     ]); 
    } 
} 

/** 
* Deletes an existing Article model. 
* If deletion is successful, the browser will be redirected to the 'index' page. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionDelete($idArticle, $idFamilleArticle) 
{ 
    $this->findModel($idArticle, $idFamilleArticle)->delete(); 

    return $this->redirect(['index']); 
} 

public function getAllArts(){ 
    $model=Article::find()->all(); 
    echo json_decode($model); 
} 

/** 
* Finds the Article model based on its primary key value. 
* If the model is not found, a 404 HTTP exception will be thrown. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return Article the loaded model 
* @throws NotFoundHttpException if the model cannot be found 
*/ 
protected function findModel($idArticle, $idFamilleArticle) 
{ 
    if (($model = Article::findOne(['idArticle' => $idArticle, 'idFamilleArticle' => $idFamilleArticle])) !== null) { 
     return $model; 
    } else { 
     throw new NotFoundHttpException('The requested page does not exist.'); 
    } 
} 
} 

ここSearchModelです:

<?php 

namespace backend\models; 

use Yii; 
use yii\base\Model; 
use yii\data\ActiveDataProvider; 
use backend\models\Article; 

/** 
* ArticleSearch represents the model behind the search form about  `backend\models\Article`. 
*/ 
class ArticleSearch extends Article 
{ 
/** 
* @inheritdoc 
*/ 
public function rules() 
{ 
    return [ 
     [['idArticle'], 'integer'], 
     [['designationArticle', 'dateAjoutArticle', 'idUniteArticle', 'idFamilleArticle'], 'safe'], 
     [['prixArticle', 'poidsArticle'], 'number'], 
    ]; 
} 

/** 
* @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 = Article::find(); 

    $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; 
    } 

    $query->andFilterWhere([ 
     'idArticle' => $this->idArticle, 
     'prixArticle' => $this->prixArticle, 
     'poidsArticle' => $this->poidsArticle, 
     'idUniteArticle' => $this->idUniteArticle, 
     'idFamilleArticle' => $this->idFamilleArticle, 
     'dateAjoutArticle' => $this->dateAjoutArticle, 
    ]); 

    $query->andFilterWhere(['like', 'designationArticle', $this->designationArticle]); 

    return $dataProvider; 
} 
} 
+0

関連コントローラを表示するアクションと関連検索モデル – scaisEdge

+0

コントローラアクションと関連検索モデルは以下のとおりです –

+0

確かにそれはスタイルシートによって異なりますか?もしそうなら、他のスタイルシートからステートメントが機能するまで一時的に削除してみてください。私。可能なテーブル変更ステートメント。 – ttdijkstra

答えて

0

ためSearchModel

<?php 

namespace backend\models; 

use Yii; 
use yii\base\Model; 
use yii\data\ActiveDataProvider; 
use backend\models\Article; 

/** 
* ArticleSearch represents the model behind the search form about  `backend\models\Article`. 
*/ 
class ArticleSearch extends Article 
{ 
/** 
* @inheritdoc 
*/ 
public function rules() 
{ 
    return [ 
     [['idArticle'], 'integer'], 
     [['designationArticle', 'dateAjoutArticle', 'idUniteArticle', 'idFamilleArticle'], 'safe'], 
     [['prixArticle', 'poidsArticle'], 'number'], 
    ]; 
} 

/** 
* @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 = Article::find(); 

    $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; 
    } 

    $query->andFilterWhere([ 
     'idArticle' => $this->idArticle, 
     'prixArticle' => $this->prixArticle, 
     'poidsArticle' => $this->poidsArticle, 
     'idUniteArticle' => $this->idUniteArticle, 
     'idFamilleArticle' => $this->idFamilleArticle, 
     'dateAjoutArticle' => $this->dateAjoutArticle, 
    ]); 

    $query->andFilterWhere(['like', 'designationArticle', $this->designationArticle]); 

    return $dataProvider; 
} 
} 

感謝のである、あなたscaisエッジに感謝actionIndexはthisのみを使用します

public function actionIndex() 
    { 
     $searchModel = new ArticleSearch(); 
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

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

これはcontrollerAction

<?php 

namespace backend\controllers; 

use Yii; 
use backend\models\Article; 
use backend\models\ArticleSearch; 
use yii\web\Controller; 
use yii\web\NotFoundHttpException; 
use yii\filters\VerbFilter; 
use yii\web\JsonParser; 

/** 
* ArticleController implements the CRUD actions for Article model. 
*/ 
class ArticleController extends Controller 
{ 
public function behaviors() 
{ 
    return [ 
     'verbs' => [ 
      'class' => VerbFilter::className(), 
      'actions' => [ 
       'delete' => ['post'], 
       /*'index' => ['get'], 
       'view' => ['get'], 
       'create' => ['get', 'post'], 
       'update' => ['get', 'put', 'post'], 
       'delete' => ['post', 'delete'],*/ 
      ], 
     ], 
    ]; 
} 

/** 
* Lists all Article models. 
* @return mixed 
*/ 
public function actionIndex() 
{ 
    $searchModel = new ArticleSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
    $model=Article::find()->all(); 
    return $this->render('index', [ 
     // the search Model 
     'searchModel' => $searchModel, 
     'dataProvider' => $dataProvider, 
     'articles' =>$model, 
    ]); 
} 

/** 
* Displays a single Article model. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionView($idArticle, $idFamilleArticle) 
{ 
    return $this->render('view', [ 
     'model' => $this->findModel($idArticle, $idFamilleArticle), 
    ]); 
} 

/** 
* Creates a new Article model. 
* If creation is successful, the browser will be redirected to the 'view' page. 
* @return mixed 
*/ 
public function actionCreate() 
{ 
    $model = new Article(); 

    if ($model->load(Yii::$app->request->post())) { 
     $model->dateAjoutArticle= date('Y-m-d h:m:s'); 
     $model->save(); 
     return $this->redirect(['view', 'idArticle' => $model->idArticle, 'idFamilleArticle' => $model->idFamilleArticle]); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 

/** 
* Updates an existing Article model. 
* If update is successful, the browser will be redirected to the 'view' page. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionUpdate($idArticle, $idFamilleArticle) 
{ 
    $model = $this->findModel($idArticle, $idFamilleArticle); 

    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     return $this->redirect(['view', 'idArticle' => $model->idArticle, 'idFamilleArticle' => $model->idFamilleArticle]); 
    } else { 
     return $this->render('update', [ 
      'model' => $model, 
     ]); 
    } 
} 

/** 
* Deletes an existing Article model. 
* If deletion is successful, the browser will be redirected to the 'index' page. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return mixed 
*/ 
public function actionDelete($idArticle, $idFamilleArticle) 
{ 
    $this->findModel($idArticle, $idFamilleArticle)->delete(); 

    return $this->redirect(['index']); 
} 

public function getAllArts(){ 
    $model=Article::find()->all(); 
    echo json_decode($model); 
} 

/** 
* Finds the Article model based on its primary key value. 
* If the model is not found, a 404 HTTP exception will be thrown. 
* @param integer $idArticle 
* @param integer $idFamilleArticle 
* @return Article the loaded model 
* @throws NotFoundHttpException if the model cannot be found 
*/ 
protected function findModel($idArticle, $idFamilleArticle) 
{ 
    if (($model = Article::findOne(['idArticle' => $idArticle, 'idFamilleArticle' => $idFamilleArticle])) !== null) { 
     return $model; 
    } else { 
     throw new NotFoundHttpException('The requested page does not exist.'); 
    } 
} 
} 

であり、それが助け

+0

2つの理由1)なぜ$ model = Article :: find() - > all(); indexActionに 'articles' => $ modelと入力します。 2)フィールド 'designationArticle'のみ、またはgrdiview内のすべてのフィールドをフィルタに許可しないでください。 – scaisEdge

+0

私は申し訳ありませんが、この牽引物 '$モデル=記事:: find() - > all(); and 'articles' => $ model 'AngularJSでフィルタを行うために追加しましたが、うまくいきませんが、削除しても何も変わりませんでした。フィルタはgridViewのすべてのフィールド用です。あなたの助けをありがとう –

+0

私はフィルタがフィールド 'designationArticle'だけで動作しないか、どんなフィールドでも動作しないかどうか尋ねました.. – scaisEdge

関連する問題