Я застрял на несколько часов с одной из тех проблем, в которых может помочь свежий взгляд.Я просто не могу понять, чего не хватает.
Я подключаю модель с именем User_ativo
и определяю два отношения один-ко-многим с моделями Instituicao
и Tipo_Ativo
.
Моя база данных проста.Таблица user_ativo
имеет столбцы "tipo_ativo_id" и "instituicao_id".У меня есть тестовая строка, где оба установлены в 1. Обе мои таблицы instituicoes
и tipo_ativos
имеют только "id" и строковое поле "nome" (name).Оба имеют запись с идентификатором == 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
возвратами ноль .
Я вполне уверен, что кто-то укажет на какую-то глупую и очевидную ошибку во всем этом, но я не могу понять, почемуодин работает, а другой нет, так как они в значительной степени одно и то же.