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'));
}

И, наконец, мой 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

Я получаю сообщение об ошибке «Клиент класса не найден». Когда он явно есть в моей папке и используется в других целях.

1

Решение

Во-первых, убедитесь, что вы запускаете composer dump-autoload,

Второе — я думаю, вам нужно использовать:

return $this->hasOne('\App\models\Customer');

в вашем отношении

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]