在laravel中如何在没有where条件的情况下将连接表数据放在同一个数组中

时间:2018-05-23 09:11:19

标签: laravel laravel-5 laravel-5.4

我已经创建了雇员和employes_detail tabel以及数据

  

我已经为下面给出的两个表创建了模型:

emloye model:

<?php

namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;
use App\Http\Model\EmployeDetail;
class Employe extends Model
{
    public function employes_detail()
    {
        return $this->hasOne(EmployeDetail::class);
    }
}

和eployedetail模型:

<?php

namespace App\Http\Model;

use Illuminate\Database\Eloquent\Model;

class EmployeDetail extends Model
{
   public function employe()
    {
        public function employe()
    {
        return $this->belongsTo(Employe::class);
    }
    }
}

在我使用的控制器中:     

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Model\Employe;
use App\Http\Model\EmployeDetail;
class EmployeController extends Controller
{
    public function index(Request $request)
    {
        $Employe=Employe::all();
        $convert=$Employe->toArray();
        echo "<pre>";print_r($convert);exit;
        //return view('employe.employe');
    }
}
  

它只显示了employee表数据如何显示数据   雇员_detail以及.still我无法理解它   laravel文档可以任何人请帮助我这相关。       如何从雇员和employes_details表中获取所有记录的所有数据

但当我在控制器中使用此代码时:

public function index(Request $request)
    {
        $Employe=Employe::where('id',1)->first();
        //$convert=$Employe->toArray();
        echo "<pre>";print_r($Employe->employes_detail);exit;
        //return view('employe.employe');
    }
  

它显示了employe_detail表数据       但我希望两个表数据在同一个数组中,我不想在这里使用where条件。

1 个答案:

答案 0 :(得分:1)

模型中的函数employes_detailemploye仅声明模型之间的关系,但如果要加载关系,可以尝试:

Employe::with('employes_detail')->get();

$employees = Employe::all(); $employees->load('employes_detail');

然后,您可以为每个员工访问关系属性:

foreach($employees as $employe) {
    $employe->employes_detail->id;
}

希望它可以帮到你。