Пример из документации «Многим через» не запускается Где здесь ошибка?
countries
id - integer
name - string
users
id - integer
country_id - integer
name - string
posts
id - integer
user_id - integer
title - string
Модель страны
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
protected $fillable = [
'id', 'name',
];
//server error
return $this->hasManyThrough(
'App\Post', 'App\User',
'country_id', 'user_id', 'id'
);
}
Пользователь модели в таблице есть другие столбцы, но они не используются в этом примере
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Authenticatable
{
protected $fillable = [
'id', 'country_id', 'name'
];
}
Сообщение модели
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = [
'id', 'user_id', 'title',
];
}
Страна ресурса
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class Country extends JsonResource
{
public function toArray($request)
{
return parent::toArray($request);
return [
'id' => $this->id,
'name' => $this->name,
'title' => $this->title,
];
}
}
Страна контроллера
<?php
namespace App\Http\Controllers\Api;
use App\Country;
use App\Http\Resources\Country as CountryResource;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CountryController extends Controller
{
public function index()
{
$countries = Country::with(['post'])->get();
return CountryResource::collection($countries);
}
}
маршрутизатор настроен правильно-проверено
Задача: показать три столбца в таблице идентификатор (страна) название (страна) название (сообщения) - все для каждой страны
в руководстве описывается что-то мятое