【问题标题】:Calling function from model into controller in Laravel在 Laravel 中从模型调用函数到控制器
【发布时间】:2017-07-19 21:39:31
【问题描述】:

是否可以在 foreach 循环中将模型中的函数调用到控制器中?

这是我的模特

class Order extends Eloquent
{
    public static function getData($data)
    {
        // function code 
    }
}

这就是我在控制器中尝试的方法

$get = Order::all();
foreach ($get->getData($get->details) as $itemId => $details) {
    dd($details);
}

这会产生错误

错误:调用未定义的方法 Illuminate\Database\Eloquent\Collection::getData()

我在我的刀片中尝试了完全相同的代码,并且没有任何问题。

那么,我应该如何在我的控制器中调用和使用该函数?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    getData() 函数在您的类中声明为静态

    public static function getData($data)
    {
        // function code 
    }
    

    所以应该使用类名Order::getData($get->details)来调用它

    foreach (Order::getData($get->details) as $itemId => $details) {
        dd($details);
    }
    

    【讨论】:

    • 返回ErrorException: Undefined property: Illuminate\Database\Eloquent\Collection::$details
    • 检查你在$get变量中得到了什么
    • 我以object(Illuminate\Database\Eloquent\Collection)#522 (1) ....获取所有数据
    • 如果问题details 将数据保存为数组?
    • 原来我需要先json_decode它。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2014-04-19
    相关资源
    最近更新 更多