さて、私は2つのテーブルを持っています:(それらにはより多くの列がありますが、これらは重要なものです)
プロジェクト ID PK AI customer_id (FK 顧客)
顧客 ID PK AI 名
さて、私のインデックスページで、プロジェクトがテーブルでリッスンしていることを示したいと思います。「顧客」列には、ID ではなく顧客の名前を表示したいので、表示しようとしている人にとって ID は何の意味もありません。テーブル。
しかし、何らかの理由で、私はそれを機能させることができません。私は成功せずにこれを行う方法についてグーグルで調査しました..だから、ここで私が間違っていることの答えが得られることを願っています.
これは私のセットアップです:
Project.php
<?php namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Project extends Model {
protected $table = 'projects';
protected $fillable = [
'customer_id', 'user_owner', 'user_project_leader' , 'name', 'description', 'status', 'offered_price',
'estimate', 'project_start', 'deadline', 'free_text', 'total_price', 'created_at', 'updated_at'
];
public function customer()
{
return $this->hasOne('Customer');
}
}
Customer.php
<?php namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Customer extends Model {
protected $table = 'customers';
protected $fillable = [
'name', 'reference_person', 'created_at', 'updated_at'
];
}
ProjectsController.php
public function index(){
$projects = Project::with('customer')->get();
return view('projects.index', compact('projects'));
}
そして最後に、私のindex.php
@foreach($projects as $project)
<tr>
<td>{{ $project->name }}</td>
<td>{{ $project->user_owner }}</td>
@foreach($project->customer as $pcustomer)
<td>{{ $pcustomer->name }}</td>
@endforeach
<td>{{ $project->deadline }}</td>
<td>{{ $project->offered_price }}</td>
<td> 00h</td>
</tr>
@endforeach
私が得ているエラーは「Class Customer not found」です。それが明らかに私のフォルダにあり、他の目的で使用されている場合。