ErrorException Arrays to String转换laravel 4和Moloquent

时间:2014-06-25 09:59:50

标签: mongodb laravel-4

美好的一天,

我目前正在使用Jenseggers和laravel 4的Moloquent ......

一切正常,甚至试图使用此代码获取姓氏以查看它是否正常工作

{{ $userGroup->lastname }}

当我尝试访问群组时,它正常,

{{ $userGroup->groups }}

它会抛出一个

ErrorException Array to string conversion (View: /var/www/laravel-learnapolis/app/views/dashboard/main.blade.php)`

尝试做var_dump,它给了我这个输出(工作正常)

{{ var_dump($userGroup->groups) }}

结果

array(2) {
  [0]=>
  array(4) {
    ["groupID"]=>
    string(12) "140368641573"
    ["name"]=>
    string(2) "aw"
    ["description"]=>
    string(2) "wa"
    ["dateCreated"]=>
    object(MongoDate)#187 (2) {
      ["sec"]=>
      int(1403686415)
      ["usec"]=>
      int(521000)
    }
  }

-------供参考----------

蒙戈

{
"_id" : ObjectId("53a800a2abd28e07068b4567"),
"email" : "my@email.com",
"firstname" : "firstname",
"lastname" : "lastname",
"password" : "$2y$10$hUGZhkHWBKKxvk4n1LU16OYWeALlYxeU6C15UvzH1ic.gJ7O4uCsu",
"hash" : "",
"active" : 1,
"updated_at" : ISODate("2014-06-24T10:43:21.958Z"),
"remember_token" : "NSint7eLHFuxbDKRkpK11qyIUDDtS06LaBJt0MgwsjElrUllpORBbN8YVoSL",
"groups" : [
    {
        "groupID" : "140368641573",
        "name" : "aw",
        "description" : "wa",
        "dateCreated" : ISODate("2014-06-25T08:53:35.521Z")
    }
]

}

控制器

public function dashboard() {
    $userID = Auth::user()->_id;

    $user = User::where('_id','=',$userID);

    if ( $user->count() ) {
        $user = $user->first();
        return View::make('dashboard.main')
                        ->with('userGroup', $user);
    }

}

查看(刀片)

正常运作

{{ $userGroup }}

无法使用

{{ $userGroup->groups }}

尽管有一些困难,希望有人可以帮助我。我是laravel的新手,但我确实有使用MongoDB的经验..尝试搜索叔叔谷歌,但没有任何解决问题的解决方案..

谢谢!

2 个答案:

答案 0 :(得分:1)

通过更改某些代码而不是使用

来修复它
User::where

用这个改变它

User::find

我不知道,两者之间的区别是什么,但谢天谢地,它现在有效......但随时可以对此作出解释..

<强>控制器

public function dashboard() {
    $user = User::find( Auth::user()->_id );

    if ( $user->count() ) {
        return View::make('dashboard.main')
                    ->with('user', $user);
    }
}

查看

@if ( is_array($user->groups) )
    @foreach ( $user->groups as $grp )
        {{ $grp['name'] }}
    @endforeach
@endif

由于

答案 1 :(得分:0)

群组是一个数组(我猜它是“很多”的关系)

所以你需要这样做

@foreach ($userGroup->groups as $group)
    {{{ $group->name }}}
@endforeach

这样就会列出每个组的名称。