ホームページ > バックエンド開発 > PHPチュートリアル > yii2模版里的匿名函数问题

yii2模版里的匿名函数问题

WBOY
リリース: 2016-06-06 20:32:03
オリジナル
1162 人が閲覧しました

控制器里没有$model变量

<code>public function actionIndex()
    {
        // if (!ctype_digit($parent)) {
        //     throw new InvalidValueException();
        // }
        $searchModel = new NsortSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            // 'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }
</code>
ログイン後にコピー
ログイン後にコピー

但视图中的$model是从哪里来的

<code> [
      'attribute' => 'parent',
      'value' => function ($model) {
                    return empty($model->parent) ? '-' : $model->parent->name;
                },
            ],
</code>
ログイン後にコピー
ログイン後にコピー

回复内容:

控制器里没有$model变量

<code>public function actionIndex()
    {
        // if (!ctype_digit($parent)) {
        //     throw new InvalidValueException();
        // }
        $searchModel = new NsortSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            // 'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }
</code>
ログイン後にコピー
ログイン後にコピー

但视图中的$model是从哪里来的

<code> [
      'attribute' => 'parent',
      'value' => function ($model) {
                    return empty($model->parent) ? '-' : $model->parent->name;
                },
            ],
</code>
ログイン後にコピー
ログイン後にコピー

这是在 GridView里面的,

简单来说就是你通过的 dataProvider 通用 getModels() 获取所有的Model, 然后遍历生成表格,

每一行就是一个 Model, 在内容如果 value 是匿名方法的话就会调用 call_user_func($this->value, $model, ..)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート