【问题标题】:TypeError Yii2 FrameworkTypeError Yii2 框架
【发布时间】:2022-07-12 00:06:36
【问题描述】:

yii\base\View::{closure}(): 参数 #2 ($model) 必须是 Libro 类型,app\models\Libro 给定

在 C:\xampp\htdocs\biblioteca\views\libro\index.php 中

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

    'id',
    'titulo',
    'imagen',
    [
        'class' => ActionColumn::className(),
     *   'urlCreator' => function ($action, Libro $model, $key, $index, $column) {*
            return Url::toRoute([$action, 'id' => $model->id]);
         }
    ],
],

]); ?>

【问题讨论】:

  • 错误消息说“必须是 Libro 类型,app\models\Libro 给定”。所以,我猜你在“app\models”命名空间中,所以在你的namespace 语句之后使用\Libro $modeluse Libro;

标签: php yii2


【解决方案1】:

从以下位置更改您的关闭:

'urlCreator' => function ($action, Libro $model, $key, $index, $column) {*
    return Url::toRoute([$action, 'id' => $model->id]);
}

进入:

'urlCreator' => function ($action, \app\models\Libro $model, $key, $index, $column) {*
    return Url::toRoute([$action, 'id' => $model->id]);
}

换句话说,使用正确的类作为类型(\app\models\Libro 而不是Libro)。

【讨论】:

  • 好的,非常感谢你成功了
【解决方案2】:

在脚本开头包含以下行以及其他使用语句:

use app\models\Libro;

【讨论】:

    【解决方案3】:

    抱歉再次打开这个帖子,我现在的答案是好的,工作正常,但我还有一个问题,为什么 Gii 代码生成器直接从视图链接模型类,可以吗?为什么代码生成器没有生成完整的类名,这是一个错误吗?我们需要报告吗?谢谢

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多