LARAVEL Выбор 2 таблиц одновременно - PullRequest
1 голос
/ 30 марта 2020

У меня есть таблица животных и таблица изображений.

Изображения имеют Id_animal.

Проблема в том, что в AnimalController я выбираю последних 6 животных и хочу вернуть их изображения в в то же время.

Понятия не имею, как это сделать.

public static function getNewerAnimals()
{
    $animales = DB::table('animals')
    ->orderBy('date_found')
    ->limit(6)
    ->get();

    return $animales;
}

Animals Table

Images Table

1 Ответ

2 голосов
/ 30 марта 2020

Вы можете использовать объединение для объединения двух таблиц.

 $animales = DB::table('animals')
    ->orderBy('date_found')
    ->join('images','images.id_animal','animals.id')
    ->limit(6)
    ->get();
return view('viewname',compact('animales'))

Редактировать

В блейд-файле

@foreach($animales as $animal)
    {{ $animal->nickname  }}
@endforeach

И если вы хотите чтобы использовать отношения, то у него будет hasMany отношение.

Модель животного

class Animal extends Model
{
    protected $table = 'animals';
    public function images()
    {
        return $this->hasMany('App\Image','id_animal','id')->where('type','interest');
    }
}

И в контроллере

$animales = Animal::with('images')
    ->orderBy('date_found')
    ->limit(6)
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...