Получите значение из двух таблиц - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь получить значение столбца «name» из таблицы клубов.

Первая таблица: (Clubs)

  • id *
  • имя (что мне нужно !!!)
  • электронная почта
  • пароль

Вторая таблица: (club_posts)

  • id
  • club_id *
  • zip_id
  • kategory
  • тип
  • stadt
  • plz

Контроллер:

public function search(Request $request)
{
    $zip = $request->input('zip');

        $users = Post::where('zip_id', 'like', $zip)
                        ->orderBy('date')
                        ->paginate(25);

        $clubs = ClubPost::where('zip_id', 'like', $zip)
                        ->orderBy('updated_at')
                        ->paginate(25);

        $city = Zip::where('zip_code', 'like', $zip)
                        ->value('city');

Это мой запрос:

        $names = Club::select('name')
                        ->leftJoin('club_posts', 'club_id', '=', 'clubs.id')
                        ->get();
        dd($names);
  
        return view('search.result', compact('users', 'clubs', 'city', 'names'));
    }

Результатом является массив с десятью значениями, но требуется только одно. введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Вы можете использовать groupBy для возврата одного результата

$names = Club::select('name')
               ->leftJoin('club_posts', 'club_id', '=', 'clubs.id')
               ->groupBy('name')
               ->get();
0 голосов
/ 01 августа 2020

Создайте клуб отношений в своей модели ClubPost, чтобы вы могли получить доступ к клубу этого сообщения клуба, используя отношение.

Модель ClubPost

public function club(){
   return $this->belongsTo(App\Club::class, 'club_id', 'id');
}

Теперь, если вы хотите получить доступ к имя (или любое другое свойство) клуба для поста клуба, вы можете использовать отношение клуба.

В вашем клинке вы будете перебирать $ club_posts.

@foreach($club_posts as $club_post)

    {{ $club_post->club->name }}
@endforeach

Также, нетерпеливо загрузите отношение клуба в ваш контроллер.

$club_posts = ClubPost::with('club')
                        ->where('zip_id', 'like', $zip)
                        ->orderBy('updated_at')
                        ->paginate(25);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...