我有点迷失了这个,我真的找不到问题,我一直在网上看很多问题,但似乎仍然无法正常工作。
我有两个表,tabelaAngaricao表和tabelaFotos表具有一对多的关系,这意味着tabelaAngariacao可以有许多tabelaFotos,并且tabelaFotos作为angariacaoid(外键),所以我的tabelaAngariacao模型是: / p>
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');
}
}
我想要的是使所有结果均与angariacaoid结合,因此在我的控制器中,我有:
public function index()
{
$results = DB::table('tabelaAngariacao')
->leftJoin('tabelaFotos', 'tabelaAngariacao.id', '=', 'tabelaFotos.angariacaoid')
->select('tabelaAngariacao.*')
->get();
}
有人可以帮助我找到问题吗?我在做什么错了?
答案 0 :(得分:4)
您不需要添加select
。尝试关注
$results = DB::table('tabelaAngariacao')
->leftJoin('tabelaFotos', 'tabelaAngariacao.id', '=', 'tabelaFotos.angariacaoid')
->get();
上面的脚本将为您提供两个表中的列。
答案 1 :(得分:1)
也许您不需要使用DB::table
,而是可以使用口才查询,因为您已经定义了关系
您可以尝试执行此操作。
$results = TabelaFotos::with('TabelaAngariacao')->get();
这是它的工作方式
$results = ModelName::with('relationship_in_model_name')->get();
希望它能起作用