我如何显示所有工作,每个工作都有自己的公司在Laravel的一对一关系中



我尝试构建自己的项目,这是工作在线网站。

我有两个表companyjob .Table company可以有许多工作关系

这是关系

//company.php
public function jobs(){
    return $this->hasMany(Job::class);
}
//job.php
public function company(){
        return $this->belongsTo(Company::class);
    }

我的桌子

Schema::create('companies', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('user_id');
    $table->string('companyName');
    $table->string('logo')->nullable();
    $table->string('contactPerson');
    $table->string('employeeSize');
​    ...
Schema::create('jobs', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('company_id');
    $table->string('jobTitle');
    $table->longText('jobDescription');
    $table->longText('jobRequirement');
    $table->date('deadline');
​    ...

我想展示所有工作,每个工作都有自己的公司,例如

  1. 在工作的每个列表中都必须有
    • Jobtitle,
    • 截止日期,..和
    • 公司名称,徽标

控制器中的代码是什么?请帮助!

您只需访问 $ job-> Company 即可访问Job的公司。您还可以通过急切的加载优化数据库中的数据:

$jobs = Job::with('company')->get();
foreach ($jobs as $job) {
  echo $job->title;
  echo $job->company->name;
}

控制器:

public function index()
{
    $jobs = Job::all();
    return view('index', compact('jobs'))
}

查看:

<ul>
    @foreach($jobs as $job)
        <li>{{$job->jobTitle}}</li>
        <li>{{$job->deadline}}</li>
        <li>{{$job->company->companyName}}</li>
        <li>{{$job->company->logo}}</li>
    @endforeach
</ul>

相关内容

最新更新