Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.06.2019 15:33:35

Связи таблиц

Пытаюсь получить связь Один ко Многим в такой логике.
Таблицы:
users
members
meetings
Сначала связь многие ко многим

$member = $user->members->pluck('id')->toArray();

Получаю массив

array:1 [▼
  0 => 3
]

Дальше связь один ко многим

$member=Member::find($member);
$meetings = $member->meetings;
foreach($meetings as $meeting);

Дальше тупик.
Property [meetings] does not exist on this collection instance

Не в сети

#2 06.06.2019 09:50:26

Re: Связи таблиц

А что вы ожидаете? find принимает на вход число (айди). А вы передаете массив. Ссылку на документацию апи посмотрите

Не в сети

#3 11.06.2019 20:29:18

Re: Связи таблиц

Спасибо за участие. Очень полезная ссылка. На будущее.

Вопрос решил так

$member = $user->members;
    foreach ($member as $object){
        $object->id;
        $member=Member::find($object->id);
        $meetings = $member->meetings;
    foreach($meetings as $meeting);
    }

Не в сети

#4 11.06.2019 21:19:46

Re: Связи таблиц

Есть такая таблица
table.jpg
Модели
Coop;
User;
Связь многие ко многим.
Далее нижеследующий код:

$user = User::find(Auth::id());
$coops = Coop::find(3);
foreach ($coops as $coop)
echo ($coops->name);
dd($coops->name);

И в результате:
echo_dd.jpg
В базе в таблице одна запись, а после запроса в ответе четыре?

Подскажите куда копать? ибо при продолжении выполнения следующего кода

$user = User::find(Auth::id());
$coops = Coop::find(3);
  foreach ($coops as $coop)
     if($coops->name == 'admin')
    {
      return TRUE;
                }            
      return FALSE;
if (Gate::denies('add-meeting', $coops)){
        echo 'Разрешено';
    }else{
        echo 'Не разрешено';
    }
    exit;

The Response content must be a string or object implementing __toString(), "boolean" given.

Не в сети

Подвал раздела