Laravel(4.1.24)将查询输出传递给视图时数组到字符串的转换

Posted

技术标签:

【中文标题】Laravel(4.1.24)将查询输出传递给视图时数组到字符串的转换【英文标题】:Laravel (4.1.24) Array to string conversion when pass query output to view 【发布时间】:2014-03-23 21:11:43 【问题描述】:

我正在尝试在 Laravel (4.1.24) 中构建一个简单的应用程序。但是当我尝试在视图中使用查询中的数据时遇到问题。

方法:

    public function openExcersise()
    $data = Auth::user();
    $levels = DB::table('user_levels')->where('user_id', $data->id)->get();
    //var_dump($levels);
    return View::make('users.excersise_home', array('title'=>'excersise', 'data'=>$data, 'levels'=>$levels));

查看:

@extends('layouts.default')

@section('content')

<section class="container registration">
    <div class="row center">
        <h1>Hi,  $data['firstname'] </h1>
        @include('embeds.userErrors')
    </div>
</section>

<section class="container">
    <div class="row">
        <p>excersise</p>
        <!--$data-->
        $levels
    </div>
</section>

@endsection

错误:

错误异常 数组到字符串的转换(查看:/Applications/MAMP/htdocs/flashwords/app/app/views/users/excersise_home.blade.php

当我在方法中转储 $levels 时,我得到以下输出(直接来自内容,我需要一条记录并得到一条)

array(1)  [0]=> object(stdClass)#172 (9)  ["id"]=> string(1) "1" ["user_id"]=> string(1) "1" ["1"]=> string(0) "" ["2"]=> string(0) "" ["3"]=> string(0) "" ["4"]=> string(0) "" ["5"]=> string(0) "" ["created_at"]=> string(19) "2014-03-23 19:33:53" ["updated_at"]=> string(19) "2014-03-23 19:33:53"  

我不知道出了什么问题,因为我可以在视图中使用 $data var 而不会出现任何问题,它也是一个数组,所以......

提前致谢!

【问题讨论】:

【参考方案1】:

您可以毫无问题地使用$data,因为它是一个实现ArrayAccess interface 并提供magical __toString method 的对象。换句话说:它不是数组...

【讨论】:

以上是关于Laravel(4.1.24)将查询输出传递给视图时数组到字符串的转换的主要内容,如果未能解决你的问题,请参考以下文章

将变量传递给laravel中的多个视图

将字符串动态传递给 laravel4 中的视图

尝试将变量传递给视图时 Laravel 5.1 错误

Laravel - 将数据视图传递给查看而不保存到数据库

如何使用laravel中的控制器将多个变量传递给视图

如何有效地将子域名传递给 Laravel 中的控制器和视图