Я учусь использовать Laravel и отношения. У меня проблемы с доступом к данным из отношений hasMany, я понимаю, что это глупый вопрос. Это может быть повторяющийся вопрос, но я не нашел конкретного ответа, подобного этому.
У меня есть две модели: таблица продавца и таблица цен. У одного продавца есть много таблиц цен, так что это выглядит так:
На модели продавца
<?php
namespace App\Pedidos;
use Illuminate\Database\Eloquent\Model;
class Vendedores extends Model
{
protected $connection = 'Pedidos';
protected $primaryKey = 'CD_VENDEDOR';
public function TabelaDePreco() {
return $this->hasMany('\App\Pedidos\TabelaDePreco', 'CD_VENDEDOR', 'CD_VENDEDOR');
}
}
По таблице цен модель
<?php
namespace App\Pedidos;
use Illuminate\Database\Eloquent\Model;
class TabelaDePreco extends Model
{
protected $connection = 'Pedidos';
protected $primaryKey = ['CD_VENDEDOR', 'CD_PRODUTO', 'CD_ESTADO'];
public function Vendedores() {
return $this->belongsTo('\App\Pedidos\Vendedores', 'CD_VENDEDOR', 'CD_VENDEDOR');
}
}
На контроллере
public function index()
{
$vendedores = Vendedores::all();
return view('pedidos.tabeladepreco.index')
->with('title', 'Tabela de preços')
->with('vendedores', $vendedores);
}
На экране появится модель TabelaDePreco
@foreach($vendedores as $vendedor)
@foreach ($vendedor->TabelaDePreco as $tabela)
{{ dd($tabela) }}
@endforeach
Вот распечатка из кода выше:
модель TabelaDePreco
Как видите, данные загружаются в переменную $ tabela.
Если я попытаюсь напечатать в представлении {{$ tabela-> NR_LIMITE1}} , я получу ошибку недопустимого типа смещения. Как получить доступ к этому атрибуту, поскольку данные загружаются при использовании dd ()? Я пробовал $ tabela ['NR_LIMITE1'], но с той же ошибкой.
Что я делаю не так?
С наилучшими пожеланиями.
EDIT:
Как указал Джонас в комментариях, Laravel не будет поддерживать отношения, когда в одной из таблиц есть составные ключи. Вернуться к миграциям.