Как показывать данные о реестре в связи с собой самим в Laravel 5.3?

я установил таблицу в связи с нею самой, таким образом, в миграции:

public function up()
{
    Schema::create('zones', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('initials')->unique();

        $table->integer('zone_type_id')->unsigned();
        $table->foreign('zone_type_id')->references('id')->on('zone_types');

        $table->integer('zone_id')->nullable()->default(null)->unsigned();
        $table->foreign('zone_id')->references('id')->on('zones');


        $table->timestamps();
    });
}

(с которой у меня есть проблемы, он с zone_id) Это таблица, чтобы устанавливать связь между зонами (например, что ведомства принадлежат, в который страна).

Когда я создаю реестр зоны, которая не считала бы присоединенной другую зону, поверьте правильно (потому что я определил, что чужеземный ключ мог бы быть nulla), но когда я верю в реестр присоединяя другой (например я верю в ведомство и присоединяю к нему страну) вид, он показывает мне следующую ошибку:

Trying to get property of нечетное число - object (View:/Applications/MAMP/htdocs/reservationSystem/resources/views/configuracion/zone/index.b)

Это определение модели:

class Zone extends Model
{
  protected $table = "zones";
  protected $fillable = ['initials','name','zone_type_id','zone_id'];

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

  public function zoneChildren(){
      return $this->hasMany('App\Zone');
  }

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

и вид, я называю метод связи, чтобы пробовать получать имя зоны, ассоциируемой с реестром, но брось ошибку, о которой я упоминаю наверху

@extends('shared.main')
@section('title','Configuración/Zona')

@section('content')

<a href="{{ route('zona.create') }}" class="btn btn-primary">Crear</a>
<hr>    
<table class="table table-striped">
    <thead>
        <th>Iniciales</th>
        <th>Nombre</th>
        <th>Tipo zona</th>
        <th>Padre</th>
        <th>Acciones</th>
    </thead>
    <tbody>
        @foreach($zones as $zone)
            <tr>
                <td>{{ $zone->initials }}</td>
                <td>{{ $zone->name }}</td>
                <td>{{ $zone->zone_type->name }}</td>
                @if($zone->zone_id == null)
                    <td>{{ $zone->zone_id}}</td>
                @else
                    <td>{{ $zone->zoneFather->name }}</td>
                @endif
                <td>
                    <a href="" class="btn btn-warning separate_left">
                        <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
                    </a>
                    <a href="" onclick="return confirm('¿Desea eliminar el tipo de identificación?')" class="btn btn-danger separate_left">
                        <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
                    </a>
                </td>
            </tr>
        @endforeach
    </tbody>
</table>

{{ $zones->links() }}
@endsection

Я надеюсь заставить меня понимать, и что они могут давать мне руку, думаю, что главным образом проблема коренится, в как в то, что показывает имя зоны, ассоциируемой с реестром другой зоны в виде используя связи ORM laravel (Я думаю, что я использую правильно связи как документацию), потому что как таковой модель данных правильна в моей базе данных.

Большое спасибо заранее.

1
задан 02.01.2017, 00:40
0 ответов