首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串转换的ErrorException阵列-- laravel 4和Moloquent

字符串转换的ErrorException阵列-- laravel 4和Moloquent
EN

Stack Overflow用户
提问于 2014-06-25 09:59:49
回答 2查看 7.2K关注 0票数 0

日安,

我现在用的是jenseggers和laravel 4的Moloquent。

一切都很好,甚至试着用这段代码来获得姓氏,看看它是否有效。

代码语言:javascript
复制
{{ $userGroup->lastname }}

它运行得很好,,但是当我尝试通过这样的方法访问组时,

代码语言:javascript
复制
{{ $userGroup->groups }}

它抛出一个

代码语言:javascript
复制
ErrorException Array to string conversion (View: /var/www/laravel-learnapolis/app/views/dashboard/main.blade.php)`

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

代码语言:javascript
复制
{{ var_dump($userGroup->groups) }}

结果

代码语言:javascript
复制
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)
    }
  }

-供参考

Mongo

代码语言:javascript
复制
{
"_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")
    }
]

}

控制器

代码语言:javascript
复制
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);
    }

}

视图(刀片)

工作精细

代码语言:javascript
复制
{{ $userGroup }}

不能工作

代码语言:javascript
复制
{{ $userGroup->groups }}

只是有点困难,希望有人能帮我。我是一个有着拉拉的新手,但我确实有MongoDB的经验。试着搜索谷歌叔叔,但没有解决问题的任何解决方案。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-27 07:29:29

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

代码语言:javascript
复制
User::where

用这个来改变它

代码语言:javascript
复制
User::find

我不知道,这两者有什么区别,但谢天谢地,现在起作用了。但你可以解释一下。

控制器

代码语言:javascript
复制
public function dashboard() {
    $user = User::find( Auth::user()->_id );

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

视图

代码语言:javascript
复制
@if ( is_array($user->groups) )
    @foreach ( $user->groups as $grp )
        {{ $grp['name'] }}
    @endforeach
@endif

谢谢

票数 1
EN

Stack Overflow用户

发布于 2014-06-25 10:07:24

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

所以你需要这么做

代码语言:javascript
复制
@foreach ($userGroup->groups as $group)
    {{{ $group->name }}}
@endforeach

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24405620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档