Property [executes] does not exist on this collection instance.id
last_name
nameid
nameid
direction_id
execute_idВ контроллере$directions = Direction::where('id', 33)->with('executes')->get();
$execute = [];
foreach ($directions->executes as $value){
$execute[] = $value;
}
dd($execute);<?php
namespace Growth;
use Illuminate\Database\Eloquent\Model;
class Direction extends Model
{
protected $table = 'direction';
protected $fillable = ['id_user', 'name'];
public function executes()
{
return $this->belongsToMany('Growth\Execute', 'execute_direction');
}
}<?php
namespace Growth;
use Illuminate\Database\Eloquent\Model;
class Execute_direction extends Model
{
protected $table = 'execute_direction';
protected $fillable = ['direction_id', 'execute_id'];
public $timestamps = false;
public function execute()
{
return $this->hasOne('Growth\Execute');
}
}
$id_direction = [];
//Получаем id direction c условие что вывести все значение у авторизованного пользователя
$directions = Direction::where('id_user', Auth::user()->id)->get();
foreach ($directions as $value){
// Сравниваем id который получили из моделе direction с промежуточной таблицы Execute_direction
$directionExecute = Exectue_direction::where('direction_id', $value->id)->get();
foreach ($directionExecute as $item){
//Получаем всех execute c который id direction должен совпадать
$executes = Execute::where('id', $item->execute_id)->get();
foreach ($executes as $key => $execute){
// Выходит многомерный массив из следующий данных id_direction -> id_execute и вписываем id name и last name в массив
$id_direction[$value->id]['name'] = $value->name;
$id_direction[$value->id]['execute'][$item->execute_id]['id'] = $execute->id;
$id_direction[$value->id]['execute'][$item->execute_id]['name'] = $execute->name;
$arr[$value->id]['execute'][$item->execute_id]['last_name'] = $execute->last_name;
}
}
}
dd($id_direction);id_direction: [
name: name->direction
execute: [
id_execute: [
id: id_execute
name: name_execute
last_name: last_name_execute
]
id_execute: [
id: id_execute
name: name_execute
last_name: last_name_execute
]
...
]
]
....
$direction = Direction::with('execute')->get();$execute = Execute::all();
$execute->direction;
$direction = Direction::with('execute')->get(); просто я не за компьютером и не смогу сейчас посмотреть все результаты. И данный запрос скорее всего выведит все записи execute не учитываю id_user но можно условие сделать $direction = Direction::with('execute')->where('id_user', Auth::user()->id)->get();, но не суть, тогда будет второй минус они не будут учитывать execute_direction а именно какие direction принадлежат к execute. То есть индекс должен быть direction.id_direction: [
name: name->direction
execute: [
id_execute: [
id: id_execute
name: name_execute
last_name: last_name_execute
]
id_execute: [
id: id_execute
name: name_execute
last_name: last_name_execute
]
]
] $executors = Executor::whereHas('directions', function($query) {
$query->where('id_user', auth()->user->id);
}) Как я говорил он выведит все execute то привязка к direction нет, чтобы все это учитывал и ставил индекс id из таблицы direction 