Laravel不显示数据

时间:2016-07-16 11:51:58

标签: php laravel

我想显示与user表链接的profile表中的数据。我在vardump中获取数据,但我不知道如何一对一地显示它。 这是我的功能:

public function show($id)
{
    //Get data from user
    $user = User::find($id);
    //Get the horse count connect to the user
    $horse_count = DB::table('horses')->where('user_id', $id)->count();

    var_dump($user->profile);
    die();
}

它返回:

object(Illuminate\Database\Eloquent\Collection)#188 (1) {
  ["items":protected]=>
  array(1) {
    [0]=>
    object(App\Profile)#189 (24) {
      ["connection":protected]=>
      NULL
      ["table":protected]=>
      NULL
      ["primaryKey":protected]=>
      string(2) "id"
      ["keyType":protected]=>
      string(3) "int"
      ["perPage":protected]=>
      int(15)
      ["incrementing"]=>
      bool(true)
      ["timestamps"]=>
      bool(true)
      ["attributes":protected]=>
      array(10) {
        ["id"]=>
        int(1)
        ["user_id"]=>
        int(2)
        ["country"]=>
        string(11) "Netherlands"
        ["age"]=>
        string(2) "21"
        ["recent_online"]=>
        string(0) ""
        ["visitors"]=>
        string(4) "2143"
        ["profile"]=>
        string(17) "Hoi ik ben Martin"
        ["remember_token"]=>
        NULL
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["original":protected]=>
      array(10) {
        ["id"]=>
        int(1)
        ["user_id"]=>
        int(2)
        ["country"]=>
        string(11) "Netherlands"
        ["age"]=>
        string(2) "21"
        ["recent_online"]=>
        string(0) ""
        ["visitors"]=>
        string(4) "2143"
        ["profile"]=>
        string(17) "Hoi ik ben Martin"
        ["remember_token"]=>
        NULL
        ["created_at"]=>
        NULL
        ["updated_at"]=>
        NULL
      }
      ["relations":protected]=>
      array(0) {
      }
      ["hidden":protected]=>
      array(0) {
      }
      ["visible":protected]=>
      array(0) {
      }
      ["appends":protected]=>
      array(0) {
      }
      ["fillable":protected]=>
      array(0) {
      }
      ["guarded":protected]=>
      array(1) {
        [0]=>
        string(1) "*"
      }
      ["dates":protected]=>
      array(0) {
      }
      ["dateFormat":protected]=>
      NULL
      ["casts":protected]=>
      array(0) {
      }
      ["touches":protected]=>
      array(0) {
      }
      ["observables":protected]=>
      array(0) {
      }
      ["with":protected]=>
      array(0) {
      }
      ["morphClass":protected]=>
      NULL
      ["exists"]=>
      bool(true)
      ["wasRecentlyCreated"]=>
      bool(false)
      }
  }
}

但是当我echo $user->profile->age;时它什么都没有显示出来。 有关信息,我将表userprofilereturn $this->belongsTo('App\User');return $this->hasMany('App\Profile');相互关联。我得到的数据,但我不能一个一个地显示它。

1 个答案:

答案 0 :(得分:3)

每人一个:

foreach (User::find($id)->profile as $profile) {
     // Do what you want, e.g.
     echo $profile->age;
}

请记住,如果用户有很多个人资料,那么关系函数名称应该是复数,如public function profiles()