在 Yii2 中从视图中调用模型方法

Posted

技术标签:

【中文标题】在 Yii2 中从视图中调用模型方法【英文标题】:Call model method from view in Yii2 【发布时间】:2015-05-08 14:28:09 【问题描述】:

我想从viewcall model method 并将其列在下拉列表中。

我有 Orders 模型及其代码方法如下:

public function OrderStatus()
        return [
            ['order_placed', 'Order Placed'],
            ['order_confirm', 'Order Confirm'],
            ['ready_for_delievery', 'Ready For Delivery'],
            ['out_of_delievery', 'Out Of Delivery'],
            ['completed', 'Completed'],
        ];
    

现在我想使用订单视图中的方法获取上述数组并在下拉列表中显示列表。

订单>> _form 查看代码:

<?=
        $order_status = Orders::OrderStatus();
    ?>
    <?= $form->field($model, 'order_status')->dropDownList($order_status); ?>

但我在下面出现错误

 php Notice – yii\base\ErrorException
Array to string conversion

什么实际问题没有得到。

任何人都有一个想法。

【问题讨论】:

【参考方案1】:

错误不在于您的模型,而在于您的 $order_status 数组。来自ActiveField::dropDownList() 的 API 页面:

数组键是选项值,数组值是对应的选项标签。

因此你的数组应该是:

public static function OrderStatus()
    return [
        'order_placed' => 'Order Placed',
        'order_confirm' => 'Order Confirm',
        'ready_for_delievery' => 'Ready For Delivery',
        'out_of_delievery' => 'Out Of Delivery',
        'completed' => 'Completed',
    ];

【讨论】:

感谢回复,但还是同样的错误。我调用模型方法的方法对吗?订单::OrderStatus(); 函数是静态的。

以上是关于在 Yii2 中从视图中调用模型方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Html:encode 中从模型调用数组到局部视图

从模型yii2获取表名

Yii2 HOW-TO:最佳实践

使用 Select2 在视图 Yii2 中调用函数

在 SwiftUI 中从 Observable 视图模型初始化 Map

Yii2 - 在模型中提交时如何从小部件中获取数据?