如何在laravel 5.2中传递多个表数据

时间:2016-02-08 18:23:27

标签: php arrays eloquent laravel-5.2 laravel-blade

我在数据库中有3个表,

- 用户

- 简介

- 教育

用户模型

 public function profiledetails()
{
        return $this->hasOne('App\Profiledetails');
}

public function educationHasOne()
{
        return $this->hasOne('App\Education');
}

Profiledetails模型

public function user()
{
        return $this->belongsTo('App\User');
}

教育模式

public function user()
{
        return $this->belongsTo('App\User');
}

我可以存储数据。

我想将所有表数据都查看到一个网页中 我使用下面的代码来实现这一点。

  public function index()
 {
 $user = Auth::user()->id;
 $profile = array(
     User::find($user)->profiledetails,
     User::find($user)->educationHasOne 
 );
 return view('profile.index', ['profile' => $profile]);
}

何时使用dd($ variablename),我能够看到我需要的所有必填字段,

现在,我想知道如何将所有这些数据传递到单页中进行查看。

3 个答案:

答案 0 :(得分:2)

您可以将数组传递给视图,如下所示:

return view('profile', ['profile' => $profile]);

在视图中,您可以访问$profile

如果您需要每个数据,建议您使用view composers。您可以在这里找到很好的文档+示例:https://laravel.com/docs/5.1/views#passing-data-to-views

答案 1 :(得分:1)

感谢@Schellingerht,将数组传递给视图工作完美。

当用户登录时,代码工作正常。

以下是我的代码

pass an array to the view

public function index()
{

 $user = Auth::user()->id;
 $profile   = User::find($user)->profiledetails;

 $education = User::find($user)->educationHasOne;
 return view('profile.index',['profile' => $profile, 'education' => $education]); 

}

答案 2 :(得分:0)

您可以使用@Schellingerht答案甚至使用“紧凑”

$profile= 'someVar';
return view( 'profile',compact('profile') );

这里你不需要创建一个关联数组。请确保变量名称与compact中的字符串相同。 在您的视图中,您只需使用

调用它
{{$profile}}