【发布时间】:2019-07-09 05:44:09
【问题描述】:
我被其中一个问题困扰了好几个小时,而全新的眼光可能会有所帮助。我只是不明白缺少什么。
我正在连接一个名为 User_ativo 的模型,并为模型 Instituicao 和 Tipo_Ativo 定义两个 一对多 关系。
我的数据库很简单。
表user_ativo 具有列“tipo_ativo_id”和“instituicao_id”。我有一个测试行,两者都设置为 1。我的表 instituicoes 和 tipo_ativos 都只有“id”和一个字符串字段“nome”(名称)。两者都有 id == 1 的记录。
User_ativo.php:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User_ativo extends Model
{
public function tipo(){
return $this->belongsTo('App\Tipo_ativo');
}
public function instituicao(){
return $this->belongsTo('App\Instituicao');
}
}
Instituicao.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Instituicao extends Model
{
protected $table = 'instituicoes';
public function user_ativos(){
return $this->hasMany('App\User_ativo');
}
}
Tipo_ativo.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tipo_ativo extends Model
{
protected $table = 'tipo_ativos';
public function user_ativos(){
return $this->hasMany('App\User_ativo');
}
}
我的控制器获取日期的方法如下:
public function index()
{
$ativos = User_ativo::with('tipo', 'instituicao')->get();
return view('ativos.index', compact('ativos'));
}
现在这里变得有趣了,由于某种原因我无法弄清楚,当我在我的视图中回显 $ativos 变量时,我得到了这个:
[{"id":1,"user_id":1,"instituicao_id":1,"tipo_ativo_id":1,"tipo":null,"instituicao":{"id":1,"nome":"Banco do Brasil"}}]
所以,奇怪的是我与 Instituicao 模型的关系有效,但 Tipo_ativo 模型返回 null。
我非常有信心有人会在这一切中指出一些愚蠢而明显的错误,但我一生都无法理解为什么一个有效而另一个无效,因为它们几乎相同东西。
【问题讨论】:
-
试试这个:$ativos = User_ativo::with('tipo')->with('instituicao')->get();
-
@InzamamIdrees 运气不好,很遗憾。
-
显示表格结构
-
尝试将外键添加到用户模型 public function tipo(){ return $this->belongsTo('App\Tipo_ativo', 'tipo_ativo_id'); }
-
阅读这篇文章,我认为可能与 (stackoverflow.com/questions/16869249/…) 重复