Laravel отношение один ко многим объединяет результаты - PullRequest
0 голосов
/ 11 октября 2018

Я вроде как потерял один этот, я действительно не могу найти проблему, я смотрел много вопросов по всей сети, но все еще не могу заставить это работать должным образом.

У меня есть две таблицы, таблица tabelaAngaricao и таблица tabelaFotos с отношением один-ко-многим, что означает, что tabelaAngariacao может иметь много tabelaFotos и tabelaFotos в качестве angariacaoid (внешний ключ), поэтому моя модель tabelaAngariacao:

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\TabelaFotos;

class TabelaAngariacao extends Model
{
    protected $table = 'tabelaAngariacao'; 
    public function TabelaFotos()
    {
        return $this->hasMany(TabelaFotos::class, 'angariacaoid');
    }
}

и моя модель tabelaFotos:

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\TabelaAngariacao;

class TabelaFotos extends Model
{
    protected $table = 'tabelaFotos'; 

    public function TabelaAngariacao()
    {
        return $this->belongsTo('App\TabelaAngariacao');
    }
}

Я хочу, чтобы получил все результаты, объединенные ангариоаоидой , поэтому в моем контроллере у меня есть:

public function index()
    {

        $results = DB::table('tabelaAngariacao')
            ->leftJoin('tabelaFotos', 'tabelaAngariacao.id', '=', 'tabelaFotos.angariacaoid')
            ->select('tabelaAngariacao.*')
            ->get();

    }

Может ли кто-нибудь помочь мне найти проблему?Что это я делаю не так?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

И, возможно, вам не нужно использовать DB::table, вместо этого вы можете использовать Eloquent Queries, так как вы определили свои отношенияips

Вы можете попробовать это, выполнив это.

$results = TabelaFotos::with('TabelaAngariacao')->get();

Вот как это работает

$results = ModelName::with('relationship_in_model_name')->get();

Надеюсь, что это работает

0 голосов
/ 11 октября 2018

Вам не нужно добавлять select.Попробуйте выполнить следующие действия:

$results = DB::table('tabelaAngariacao')
->leftJoin('tabelaFotos', 'tabelaAngariacao.id', '=', 'tabelaFotos.angariacaoid')
->get();

Приведенный выше скрипт выдаст вам столбцы из обеих таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...