Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比较两个不同表中的两个不同列,并显示其他列';使用laravel 5.4中的orm关系从任一表中删除数据_Php_Mysql_Laravel_Laravel 5_Orm - Fatal编程技术网

Php 比较两个不同表中的两个不同列,并显示其他列';使用laravel 5.4中的orm关系从任一表中删除数据

Php 比较两个不同表中的两个不同列,并显示其他列';使用laravel 5.4中的orm关系从任一表中删除数据,php,mysql,laravel,laravel-5,orm,Php,Mysql,Laravel,Laravel 5,Orm,我有两种模式,一种是公司,另一种是面试。 companys表的主键是Company\u details\u id,该键用作面试表中Company\u id的外键 现在我的问题是如何比较这两个键值如果我的条件为真,它将从companys表返回列company_name 我的公司模式: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Companies extends Model { protect

我有两种模式,一种是公司,另一种是面试。 companys表的主键是Company\u details\u id,该键用作面试表中Company\u id的外键

现在我的问题是如何比较这两个键值如果我的条件为真,它将从companys表返回列company_name

我的公司模式:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;


class Companies extends Model
{
 protected $table = 'company_details';

  protected $primaryKey = 'company_details_id';


  public function interviews()
  {
      return $this->hasmany('App\Interviews', 'f_company_id');
  }


}

还不完全清楚您想要实现什么,但这里有一些指导原则

首先,你似乎有“一家公司可以有很多面试”和“一次面试只能属于一家公司”作为你的人际关系。大多数情况下,您已经在模型中正确设置了这些

由于您的关系,“getAll”查询应该是:

$companies = Company::with(['interviews'])->select(['company_name'])->get();
然后,您可以相对轻松地在它们之间循环:

foreach($companies as $company)
{
  foreach($company->interviews as $interview) {
    // Do something with $interview
  }
}
使用with调用关系“访谈”,根据假定的键自然地执行两个表之间的所有where子句。由于您似乎有非标准主键,因此需要更详细地定义hasMany和belongsTo

public function interviews()
{ 
  return $this->hasMany(Interview::class, 'f_company_id', 'company_details_id');
}

我建议你打电话给模特公司面试,不要用复数形式。这是因为一张记录只涉及一家公司(基于您所写的假设)。从长远来看,你会发现它不那么令人困惑。

我想你可以试试这个:

 DB::table('interview_schedule')
 ->select('company.company_name')
 ->join('company','company_details.company_details_id','=','interview_schedule.f_company_id')
 ->where('interview_schedule.f_company_id','=','company.company_details_id')
 ->get();
希望这项工作为你

public function interviews()
{ 
  return $this->hasMany(Interview::class, 'f_company_id', 'company_details_id');
}
 DB::table('interview_schedule')
 ->select('company.company_name')
 ->join('company','company_details.company_details_id','=','interview_schedule.f_company_id')
 ->where('interview_schedule.f_company_id','=','company.company_details_id')
 ->get();