我想显示与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;
时它什么都没有显示出来。
有关信息,我将表user
和profile
与return $this->belongsTo('App\User');
和return $this->hasMany('App\Profile');
相互关联。我得到的数据,但我不能一个一个地显示它。
答案 0 :(得分:3)
每人一个:
foreach (User::find($id)->profile as $profile) {
// Do what you want, e.g.
echo $profile->age;
}
请记住,如果用户有很多个人资料,那么关系函数名称应该是复数,如public function profiles()