그래서, 나는 두 개의 테이블이 좋아요 : (더 많은 컬럼을 가지고 있지만 이러한 중요한 것들)laravel 5 일대일 관계 쇼 외래 키 이름 필드에
프로젝트 ID PK AI CUSTOMER_ID (FK 고객)
고객 ID PK AI 이름
이제 내 인덱스 페이지에, 나는 고객의 이름을 표시 할 아닌 프로젝트가 테이블에하고 "고객"열에들을 보여주고 싶은 신분증, 신분증은 그 사람에게 아무런 의미가 없다. 테이블을 봅니다.
웬일인지, 나는 그것을 작동시킬 수 없다. 나는 성공하지 않고 이것을하는 방법에 대해 봤는데 봤어. 그래서 내가 뭘 잘못하고 있는지에 대한 대답을 얻을 수 있기를 바란다.
이 내 설정 :
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'));
}
그리고 마지막으로, 내 인덱스
을. 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
"클래스 고객을 찾을 수 없습니다."라는 오류가 발생했습니다. 그것이 분명히 내 폴더에 있고 다른 목적으로 사용되었을 때.
내가했던 그 두 가지를하고 지금은 클래스가 발견하지만, 나에게이 오류 제공합니다 : -
두 번째 일이 당신이 사용할 필요가 있다고 생각 SQLSTATE [42S22]를 : 열이 없습니다 : 1054 알 수없는 열 'customers.project_id'in where 절 '(SQL : select * from'customers'에서'customers'.project_id' in (1, 2, 3, 4)) 그것은 excist하지 않는 칼럼을 찾고있는 것을 보아라, 나는 단지 이유를 모른다. –
관계를'$ this-> belongsTo ('\ App \ models \ Customer');로 반환해야합니다. –
감사합니다! 나는 이것을 이해하는 데 어려움을 겪었으나 이제는 일을 시작하게되었으므로 나는 무엇인가 가지고있다. 나는 그 변경을하고 그 이름을