【问题标题】:laravel eloquent Array to string conversionlaravel eloquent 数组到字符串的转换
【发布时间】:2017-05-10 09:04:27
【问题描述】:

我在 laravel 中构建了一个助手来从 eloquent 返回一个字段。

class Helper {

    public static function getAddress($id) {
        //intval($id);
        $result = DB::table('tableaddress')
            ->where('id',$id)
            ->pluck('address');

        //dd($result);
        return $result;

    }
}

在视图中,我通过{!! Helper::getAddress(112233) !!} 调用它,但收到Array to string conversion 的错误。

这是dd的结果

如何获取地址以返回字符串。谢谢

【问题讨论】:

    标签: php mysql laravel eloquent helper


    【解决方案1】:

    你需要从数组中获取第一个结果,所以使用这个:

    ->pluck('address')[0];
    

    【讨论】:

    • 是的,我需要以字符串形式返回。但您的解决方案返回Call to a member function first() on array
    • 使用 [0] 如果您使用 Eloquent 而不是 Query Builder,first() 方法也可以工作。
    • 好吧@Shafiq 你正在使用哪个 laravel。因为我签入了 Laravel 5 dd($result); 给出了字符串输出。
    • 所以结论是你的代码是正确的,对吧?
    • 是的,解决方案是正确的。我正在使用未更新的本地数据库。经过一些 git push 后,代码工作正常。谢谢
    【解决方案2】:

    你可以试试:

    {!! Helper::getAddress(112233)->first() !!}
    

    或者直接在你的辅助函数中添加first

    $result = DB::table('tableaddress')
               ->where('id',$id)
               ->pluck('address')
               ->first();
    

    【讨论】:

    • 错误返回Call to a member function first() on array
    • 如果是数组,请尝试使用[0]
    【解决方案3】:

    你需要循环从Helper::getAddress(112233)返回的结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 2017-01-14
      • 2020-09-10
      相关资源
      最近更新 更多