Boa tarde!
Gostaria de uma ajuda referente a um projeto efetuado a apartir das aulas de Laravel, em relação ao cenário abaixo:
Eu tenho 3 tabelas, 1 é a Moviment que é a principal, a 2 é a cart_moviments que é a secundária que quando eu coloco os dados da movimentação, ele salva alguns dados em cart_moviments e eu tenho a tabela 3 chamada veículos, que a qual tenho todas as informações dos veículos, todas as tabelas têm um ForeignId, para relacioná-los.
Então, no meu retorno do recurso, tenho Moviment->cartMoviment e quero acessar vehicles dentro do cartMoviment->vehicle->board, , portanto não consigo fazer isso, pois sempre informa que o model vehicle não é de uma collection, mesmo estando.
Meu Store está assim:
public function store(StoreMovimentRequest $request, StoreCartMovimentRequest $requestCart, StoreDocumentRequest $requestDocument)
{
$this->authorize('create', Moviment::class);
$moviment = Moviment::create($request->validated());
$moviment->cartMoviment()->create($requestCart->validated());
foreach(array($request['key_number']) as $notasFiscais) {
foreach($notasFiscais as $notas) {
$moviment->document()->create($notas);
}
}
return new MovimentResource($moviment);
}
Meu Index:
public function index(Moviment $moviment)
{
$this->authorize('view', $moviment);
return MovimentResource::collection(Moviment::with(['cartMoviment', 'vehicle', 'company','person', 'document'])->orderBy('created_at','desc')->get());
}
Meu Moviment Model:
protected $fillable = [
'document_type_id', 'people_id', 'company_id', 'vehicle_id', 'department_id'
];
public function Vehicle() {
return $this->belongsTo(Vehicle::class);
}
public function cartMoviment() {
return $this->hasMany(cartMoviment::class);
}
Meu Model CartMoviment:
protected $fillable = ['type', 'vehicle_cart_id'];
// protected $table = 'cart_moviments';
public function Moviment() {
return $this->belongsToMany(Moviment::class);
}
public function Vehicle() {
return $this->belongsTo(Vehicle::class, 'vehicle_cart_id');
}
Meu Resource Code Api:
'vehicle_manufacturer' => $this->vehicle->vehicleModel->name,
'vehicle_type' => $this->vehicle->vehicleType->type,
'vehicle_cart_id' => $this->cartMoviment->vehicle, //Aqui aonde quero acessar o vehicle
'documents' => $this->document,
'user_id' => $this->user_id,
Meu retorno Json Api Resource:
//Aqui gostaria de acessar o vehicle_cart_id para acessar o vehicle_id para obter as informações do veiculo referente a ele.
"vehicle_manufacturer": "ONIX",
"vehicle_type": "CAVALO",
"vehicle_cart_id": [
{
"id": 2,
"moviment_id": "2",
"type": "Entrada",
"vehicle_cart_id": "3",
"status": "Ativo",
Erro encontrado, pois não têm na collection:
Property [vehicle_cart_id] does not exist on this collection instance.
Ou
Property [vehicle] does not exist on this collection instance.
Agradeço a ajuda.