如何在控制器中使用hasone关系显示两个表的合并数据

时间:2019-01-21 07:22:45

标签: laravel relationship

我有两个表:

employees(
  employe_id(primary key),
  emp_name,
  pay_id
)

pays(
  pay_id,
  hourlyrate
)

我在 employemodel.php

中有此代码
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\payModel;
class employeeModel extends Model
{

    protected  $table='employees';
    protected  $primaryKey='employe_id';
    public $timestamps=false;

    public function pay()
    {
    return $this->hasOne('App\payModel','pay_id');  
    }
}
?>

payModel 中,我有此代码。

employcontroller 中都有此代码。

<?php

namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Str;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\employeeModel;
use Illuminate\Support\Facades\DB;

class employeController extends Controller
{
  public function display()
  {
    $display = employeeModel::find(1)->pay;
    return $display;
  }
} 

当我使用此选项时,我只会得到付款表的详细信息。我想要查询中包含的两个表的组合结果。

仅使用$display = employeeModel::find(1);时,我会获得员工表详细信息。

在使用$display = employeeModel::find(1)->pay;时,我只获得付费表详细信息吗?

class employeController extends Controller
{
  public function display()
  {
    //DB::enableQueryLog();
    $display = employeeModel::find(1)->pay;
    return $display;
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用,它将合并两个表,

class employeController extends Controller
{
  public function display()
  {
    //DB::enableQueryLog();
    $display = employeeModel::with('pay')->find(1);
    // dd($display);
    return $display;
  }
}